文件上传解析漏洞(三)—IIS6.0解析漏洞、CGI解析漏洞、Upload-labs-master20-23Wirteup

文件上传解析漏洞(三)—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解析
在这里插入图片描述菜刀链接:
在这里插入图片描述