文件上传解析漏洞(三)—IIS6.0解析漏洞、CGI解析漏洞、Upload-labs-master20-23Wirteup
IIS6.0解析漏洞
IIS6.0解析漏洞,其实有一些不如说是IIS6.0的一些特性,严格意义上而言,只是一些默认配置并不是漏洞但是也有一些的确是漏洞。
IIS解析漏洞一:
IIS6.0除了将ASP后缀当做ASP进行解析的同时,当文件后缀名字为.asa .cer .cdx也会当做asp去解析,这是因为IIS6.0在应用程序扩展中默认设置了.asa .cer .cdx都会调用asp.dll
IIS6.0解析漏洞(二)
IIS5.1和IIS7.5无此漏洞
IIS6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞。这一漏洞有两种完全不同的利用方式:
例如:test.asp;.jpg 将会当做asp进行解析
test.asp/123.jpg 将当做asp进行解析
将保留下来 .asp 字符串,从META_SCRIPT_MAP脚本映射表里与扩展名匹配对比,并反馈给了asp.dll处理。
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就可以成功的绕过解析。
接下来,这里用到的靶场是掌控安全学院的Upload-labs pass20-23
pass-20
查看源码:
发现允许上传.asa .cer .cdx后缀的文件,这里就想到了IIS6.0解析漏洞
(当然,这里需要准备一个asp的图片马,php的图片马不行)
asp一句话木马大全
这里上传我们的asp图片马,修改后缀为.asa
打开上传路径:
菜刀链接:
pass-21
查看源码:
这里我们也可以利用IIS6.0解析漏洞绕过,修改文件名后缀为xxx.asp;.jpg
它将当做asp解析。
打开上传路径:
菜刀链接:
pass-22
查看源码:
这里我们还是使用IIS6.0解析漏洞绕过,修改文件后缀名
打开文件上传路径:
菜刀链接:
pass-23
查看源码:
发现使用了白名单机制,并且过滤的常见的几种绕过方式。这里我们就可以用到CGI解析漏洞绕过。
这一关需要上传php图片马
这里不用修改文件名后缀,直接放包上传。
上传之后,复制图片地址打开,在地址后面直接加上/.php
可以发现上传的图片成功当成php解析
菜刀链接: