Apache目录解析漏洞

20130128204422

不管文件的后缀是什么,只要是.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配置文件(httpd.conf),禁止.php.这样的文件执行,配置文件里面加入

<Files ~ "\.(php.|php3.)">
Order Allow,Deny
Deny from all
</Files>

上面的代码太骚了,耗用资源太大,所以另外在附上一个HostKer的某大牛写的…:

<FilesMatch "\.php\.[^*]{1,}$">
Order Allow,Deny
Deny from all
</FilesMatch>

当然,如果你不好意思(虚拟机用户)去修改httpd.conf文件,也可以添加到.htaccess文件中,效果是一样的

[noway]本文仅作介绍以及防御方法,对看完后某些有心人的非法利用不负任何责任[/noway]

37 Replies to “Apache目录解析漏洞”

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据