位置: 编程技术 - 正文
推荐整理分享你不知道的文件上传漏洞php代码分析(文件不知道在哪怎么找),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:不知道什么文件类型的文件类型,你不知道的文件有哪些,你不知道的文件英语,你不知道的文件英语,你不知道的文件有哪些,不知道什么文件类型的文件类型,你不知道的文件英语,你不知道的文件英语,内容如对您有帮助,希望把文章链接给更多的朋友!
漏洞描述
开发中文件上传功能很常见,作为开发者,在完成功能的基础上我们一般也要做好安全防护。文件处理一般包含两项功能,用户上传和展示文件,如上传头像。
文件上传攻击示例
upload.php
upload.html
上述代码未经过任何验证,恶意用户可以上传php文件,代码如下
<php eval($_GET['command']);>
恶意用户可以通过访问 如 来执行远程命令
Content-type验证
upload.php
该方式是通过Http请求头信息进行验证,可通过修改Content-type ==> image/jpg绕过验证,可以通过脚本或BurpSuite、fiddle修改如下Content-Disposition: form-data; name="userfile"; filename="shell.php"Content-Type: image/gif
图片类型验证
该方法通过读取文件头中文件类型信息,获取文件类型
备注:如JPEG/JPG文件头标识为FFD8
upload.php
可以通过图片添加注释来绕过此验证。如添加注释<php phpinfo(); >,保存图片后将其扩展名改为php,则可成功上传。上传成功后访问该文件则可看到如下显示
文件扩展名验证
通过黑名单或白名单对文件扩展名进行过滤,如下代码
upload.php
当黑名单不全,构造特殊文件名可以绕过扩展名验证
直接访问上传的文件
将上传文件保存在非web root下其他文件夹下,可以防止用户通过路径直接访问到文件。upload.php
用户不可以直接通过 来访问文件,必须通过view.php来访问view.php
查看文件代码未验证文件名,用户可以通过例如 root之外,用户通过id在数据库中查询文件名,读取文件,可以有效的阻止上述漏洞发生
总结
通过以上示例分析,可总结一下几点
1.文件名修改,不使用用户上传的文件名
2.用户不可以通过上传路径直接访问文件
3.文件查看采用数据库获取文件名,从而在相应文件服务器读取文件
4.文件上传限制文件大小,个人上传数量等
标签: 文件不知道在哪怎么找
本文链接地址:https://www.jiuchutong.com/biancheng/302023.html 转载请保留说明!友情链接: 武汉网站建设