52. 文件上传篇——Apache漏洞原理

Apache解析漏洞

在Apache1.x与Apache2.x中存在解析漏洞,不管文件的后缀是什么,只要是.php.*结尾,就会被Apache服务器解析成PHP文件,问题是Apache如果在mime.types文件里面没有定义的扩展名比如x1.x2.x3的情况下,最后一个x3的没有定义,那么就会将其解析成倒数第二个的x2的定义的扩展名类型。所以xxx.php.rar或者xxx.php.111这些默认没有在mime.types文件定义的都会解析成PHP的。

如果上传的文件名使我们可以定义的,那么我们可以完全上传一个xxx.php.abc这样名字的webshell,Apache仍然会当做PHP来解析。

 

防御方法

在Apache配置文件(httpd.conf),禁止.php.这样的文件执行,配置文件里面加入

<Files~ "\.(php.|php3.)">

Order Allow,Deny

Denyfrom all

</Files>

 

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

<FilesMatch"\.php\.[^*]{1,}$">

Order Allow,Deny

Denyfrom all

</FilesMatch>

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

你可能感兴趣的:(【信息安全】,———渗透测试基础,【渗透测试基础】,信息安全)