Web中间件解析漏洞
中间件:apache、nginx、tomcat、weblogic、jboss等
IIS 5.x-6.x解析漏洞
使用iis5.x-6.x版本的服务器,大多为windows server 2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析aspx文件。win7-win10中多为iis7.x-8.x了,版本比较高。
- 目录解析(6.0)
形式:www.xxx.com/xx.asp/xx.jpg
原理:服务器默认会把.asp,.asa目录下的文件都解析成asp文件 - 文件解析
形式:www.xxx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。 - 解析文件类型
IIS6.0 默认的可执行文件除了asp还包含这三种:
/test.asa
/test.cer 伪装成证书文件
/test.cdx
- 修复方案
- 目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;.jpg类型的文件名。
- 做好权限设置,限制用户创建文件夹。
- 安装防护软件,比如D盾等
Apache解析漏洞
漏洞原理:
Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。比如test.php.owf.rar,“.owf”和”.rar”这两种后缀是apache不可识别解析,apache就会把xx.php.owf.rar解析成php。
漏洞形式:
www.xxxx.xxx.com/test.php.php123
其余配置问题导致漏洞
(1)如果在 Apache的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含,php 即使文件名是test2.php.jpg 也会以php 来执行。(2)如果在 Apache 的 conf 里有这样一行配置 AddType application/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行。xx.jpg
1.示例:www.xxxx,xxx.com/test.php.php123
比如我们将sql.php改为sq.php.xx,正常来讲的话是不能解析的,但是老版本的apache(apache2.2版本及之前的)是能够正常将这个文件解析为php文件的
- 修复方案
1.apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
1 | <Fi1es ~ ".(php.|php3.)"> //正则匹配,只要前面有.和后面有.的所有都拒绝 |
2.用伪静态能解决这个问题,重写类似.php.*这类文件,打开apache的httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so
把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代码如下:
1 | <IfModule mod_rewrite.c> |
Nginx解析漏洞
1.php路径漏洞
大致原理:该漏洞与nginx、php版本无关,属于配置不当造成的解析漏洞。
当php.ini配置文件中开启了cgi.fix_pathinfo,该值默认为1,表示开启。是处理路径用的配置。
比如我们上传了一个木马文件web.jpg,因为web.php不能上传,现在我们想执行这个web.jpg,可以如下路径访问
http://192.168.2.104/pikachu/web.jpg/aaa.php
而目标服务器上没有aaa.php文件,本来如果nginx.conf的配置没有问题的话,nginx会先去找下这个文件是否存在,如果存在,在找php解释器来解释执行代码,如果不存在,nginx会直接返回错误信息,说找不到该文件,但是如果nginx.conf配置不当会导致nginx把以’.php’结尾的文件交给fastcgi处理,也就是说首先nginx看到你路径中要找aaa.php,哦,原来是php文件,nginx不去找这个文件了,而是就直接交给了fastcgi,fastcgi又去找php解释器去处理该路径,而php开启了cgi.fix_pathinfo,那么php解释器处理这个路径的时候,发现没aaa.php文件,那么他会找路径中上一层路径的文件作为aaa.php来运行,如是乎就找到了web.jpg,将web.jpg当作aaa.php来运行了,所以代码被执行。
- 修复方案
1.修改php.ini文件,将cgi.fix_pathinfo的值设置为0;
2.在Nginx配置文件中添加以下代码:
1 | if($fastcgi_script_name ~ ..*/.*php){ //匹配到类似test.jpg/a.php的url时返回403 |