1、文件解析漏洞
- 解析漏洞主要说的是一些被IIS、Apache、nginx在某种情况下解释成脚本文件格式的漏洞
1.1、IIS 5.x/6.0解析漏洞(两种解析)
-
1)目录解析 /xx.asp/xx.jpg
在网站下建立文件夹的名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行;
-
2)文件解析 a.asp;.jpg
在IIS6.0下,分号后面的不被解析,也就是说a.asp;.jpg会被服务器看成是a.asp,还有默认的可执行文件除了asp还有三种:a.asa、a.cer、a.cdx
1.2、Apache解析漏洞
- Apache是从右到左开始判断解析,如果为不可识别解析,就在往左判断,如a.php.owf.rar “.owf”和“.rar”这两种后缀是apache不可识别解析,apache就会把a.php.owf.rar解析为php.
- 如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个a.php.rara.jpg.png…(把你知道的后缀都写上…)去测试后缀是否是合法后缀,任意不识别的后缀,逐级向上识别
1.3、Nginx<8.03空字节代码执行漏洞
- 影响版本:0.5.,0.6.,0.7<=0.7.65,0.8<=0.8.37
- Nginx在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
1.4、htaccess文件解析
-
如果在Apache中的.htaccess可被执行,且可被上传。那可以尝试在.htaccess中写入:
<FilesMatch "shell.jpg">SetHandler application/x-httpd-php </FilesMatch>
-
在上传shell.jpg的木马,这样shell.jpg就可以解析为php文件
2、检测绕过
2.1、客户端检测绕过(javascript 检测)
- 首先判断JS本地验证
- 通常可以根据它的验证警告弹框的速度可以判断,如果你电脑运行较快,那么我们可以用burp抓包,在点击提交时候burp没有抓到包,就已经弹框那么说明这个就是本地js验证。
- 绕过方法:
- 使用burp抓包改名
- 使用firebug直接删除掉本地验证的js代码
- 添加js验证的白名单如将php的格式添加进去
2.2、服务端检测绕过(MEME类型检测)
-
MIME的作用:
使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件
-
web服务器使用MIME来说明发送数据的种类,web客户端使用MIME来说明希望收到的数据种类
-
tomcat的安装目录\conf\web.xml中就定义了大量MIME类型;
-
绕过方法:
直接使用burp抓包,得到post上传数据后,将Content-Type:text