目前解析漏洞主要存在于三大WEB服务程序,分别是IIS、NGINX和APACHE。
IIS6.0下主要是有两个解析漏洞,一个是目录解析,形如/xx.asp/xx.jpg,另一个就是文件解析,形如xx.asp;.jpg,可通过此漏洞上传shell,对服务器危害较大。
著名的nginx畸形解析漏洞。实验室已经有这个漏洞的实验,不再赘述。
Apache解析漏洞。这个实验也是测试的这个漏洞。环境是php+apache
Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断。比如xxx.php.rar对apache来说rar是不可解析的,所以就会解析成xxx.php。
通过简单上传页面证明apache解析漏洞
登录客户机,用浏览器打开地址http://10.1.1.31/upload/,这是根目录下的upload目录,也是要上传的文件目录,现在是空的
然后再打开http://10.1.1.31/upload.html,这就是上传页面
现在开始测试。在客户机中新建一个test.php.rar内容是<?php phpinfo();?>然后上传
看看是否上传成功。访问一下试试
Apache并不认识rar后缀名,对它来说会看成test.php。解析成功。其实整个漏洞的关键就是apache的"合法后缀"到底是哪些,不是"合法后缀"的都可以被利用。
通过修改apache配置文件进行防御
由上面可知,在http://10.1.1.31/upload/下已经成功上传了test.php.rar,并且可错误解析成php。
现在对apache的配置文件做适当修改,在文件中添加下面几行代码
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
禁止*.php.*文件的访问权限
保存并重启apache。现在再来测试
目录下也看不到了