上传漏洞助手之服务器解析
转载:http://hi.baidu.com/xyhk5558/item/5a5b706b5f9a3330ac3e83ab
上传漏洞可谓是网站入侵者最喜欢,最乐意的攻击手法,正因如此,程序员对上传文件的扩展名过滤,也是绞尽脑汁,从以前的黑名单过滤,通过判断扩展名是否为.asp,.asa,.cer等,到现在白名单直接判断扩展名是否为 jpg,gif,png,rar,zip等,甚至以前常用的00截断上传很多情况也不起作用了,但这并不意味着上传漏洞就已无用武之地,当你看到服务器的目录解析和文件解析问题后,上传也可谓是峰回路转了一回。
Windows2003+IIS6.0 目录解析漏洞
1 会把xxx.asp目录下的文件都以asp来进行解析
2 1.asp;_2.gif形式的文件也会被当做asp来解析
Apache2.2.14 目录解析漏洞
不管文件最后后缀为什么,只要是.php.*结尾,就会被Apache服务器解析成php文件,问题是apache如果在mime.types文件里面没有定义的扩展名在诸如x1.x2.x3的情况下,最后一个x3的没有定义,他会给解析成倒数第二个的x2的定义的扩展名。所以xxx.php.rar或者xxx.php.111这些默认没在mime.types文件定义的都会解析成php的。同样如果是cgi或者jsp也一样。。。那么如果涉及到web程序的上传页面,如果上传的文件名是我们可以定义的,那么我们完全可以上传一个xxx.php.abc这样名字的webshell,apache仍然会当作php来解析。
防御方法:
apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
<Files ~ “\.(php.|php3.)”>
Order Allow,Deny
Deny from all
< /Files>
Nginx-0.8.37 文件解析漏洞
通过访问 http://www.2cto.com /phpinfo.txt/abc.php则会以php文件来解析phpinfo.txt
解决方案:
1 修改php.ini将cgi.fix_pathinfo设为0,重启php反向代理服务
2 为nginx虚拟主机添加如下内容:
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}