文件上传与解析漏洞
文件上传
介绍:
由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP/ASP/JSP文件,并能够将这些文件传递给PHP/ASP/JSP解释器,就可以在远程服务器上执行任意脚本。
存在原因:
- 传文件的时候,如果服务器脚本语言,未对上传的文件进行严格的验证和过滤,就容易造成上传任意文件,包括上传脚本文件。
- 如果是正常的PHP文件,对服务器则没有任何危害l
- php可以像其他的编程语言一样,可以查看目录下的文件,查看文件中的吗内容,可以执行系统命令等。
- 上传文件的时候,如果服务器端脚本语言,未对上传的文件进行严格的验证和过滤,就有可能上传恶意的PHP文件,从而控制整个网站,甚至是服务器。这个恶意的PHP文件,又被称为WebShell。
存在位置:
- 服务器配置不当
- 开源编辑器的上传漏洞(eweb,fck,ckfinder等)
- 本地文件上传限制被绕过l
- 过滤不严或被绕过l
- 文件解析漏洞导致文件执行l
- 文件路径截断
思路:
凡是有上传的地方均可进行安全测试;
表面:个人中心头像上传,文章发表附件等;
内部:扫描工具探针的上传地址;
2.
条件: 寻找一个上传点,查看上传点是否可用。
利用:
首先判断是程序员自己写的上传点,还是编辑器的上传功能
如果是编辑器上传功能,goolge当前编辑器的漏洞
如果是程序员写的上传点
上传一个正常的jpg图片 查看上传点是否可用
上传一个正常的jpg图片,burp拦截,修改后缀为php (可以检测前端验证 MIME检测 文件内容检测 后缀检测)
上传一个正常的jpg图片,burp拦截, 00截断 1.php%00.jpg
判断服务器是什么类型,web服务器程序,是什么类型,版本号多少
利用解析漏洞
危害:
直接上传后门建立连接;控制网址;得到web权限(网站,服务器);
防护建议:
使用白名单限制可以上传的文件扩展(白名单比黑名单可靠多了)
验证文件内容,使用正则匹配恶意代码限制上传
对上传后的文件统一随机命名,不允许用户控制扩展名
修复服务器可能存在的解析漏洞
严格限制可以修改服务器配置的文件上传如:.htaccess
隐藏上传文件路径。
升级Web Server
及时修复Web上传代码(重要)
不能有本地文件包含漏洞
注意0x00截断攻击(PHP更新到最新版本)
上传文件的存储目录禁用执行权限