上传
漏洞可谓是网站入侵者最喜欢,最乐意的攻击手法,正因如此,程序员对上传文件的扩展名过滤,也是绞尽脑汁,从以前的黑名单过滤,通过判断扩展名是否为.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.at
cpu.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;
}