文件上传漏洞-解析、验证、伪造3

接上一篇内容

IIS6.0解析漏洞(一)

我们现在要讲的第一个是IIS6.0的解析问题:
在这里插入图片描述
iis6.0除了将ASP后缀当成ASP进行解析的同时,当文件后缀名字为.asa .cer .cdx也会当做asp去解析,而严格意思上讲这可以说是iis6的一些特性,只是iis6默认的一些默认配置,文件后缀名字为.asa .cer .cdx之所以也会当做asp去解析,是因为IIS6.0在应用程序扩展中默认设置了.asa .cer .cdx都会调用asp.dll。
当然,如果我们在iis6.0应用程序扩展配置中添加.allblue调用asp.dll可执行文件路径,那么我们也可以通过.allblue后缀来当成asp文件来解析;
接下来我们来看靶场:
在这里插入图片描述
这道题,我们只要通过上传一张图片马,并抓包将后缀改成.asa .cer .cdx其中一种后缀,都会被当成asp文件执行(请注意,我们要解析的是asp文件,所以一句话也要是asp的;也不能再本地直接改后缀名,因为这里会验证文件的文件类型)
我们将图片马上传并抓包改包
在这里插入图片描述
在这里插入图片描述
上传
在这里插入图片描述
上传成功
在这里插入图片描述
通过菜刀文件连接
在这里插入图片描述

IIS6.0解析漏洞(二)

首先说明下,IIS5和IIS7.5无此漏洞!
IIS6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞,这一解析漏洞有两种完全不同的利用方式:
test.asp;.jpg 会被当做asp进行解析
text.asp/123.jpg 会被当做asp进行解析
假如我们请求/aaa.asp;xxxx.jpg

执行过程:

  1. 从头部查找查找“.”,获得.asp;xxxx.jpg
  2. 查找“;”号,如果有则内存截断
  3. 查找“/”号,如果有则内存截断

最终,将保留下来.asp字符串,从META_SCRIPT_MAP脚本映射表里于扩展名匹配对比,并反馈给asp.dll
在这里插入图片描述

我们先上传图片马
在这里插入图片描述
并改包
在这里插入图片描述
上传
在这里插入图片描述
通过菜刀文件连接
在这里插入图片描述

IIS6.0解析漏洞(三)

在这里插入图片描述
IIS6.0还有一个漏洞,在后缀是.asp的文件夹下,里面的文件里只要有asp代码,只要进行访问,都会当做asp文件执行;
我们先上传图片看看目录:
在这里插入图片描述
我发现他的文件是存放在.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,如果开启了fix_pathinfo选项,name就会触发在PHP中的如下逻辑:
PHP会认为SCRIPT_FILENAME(绝对路径)是phpinfo.jpg,而1.php是PATH_INFO,所以就会phpinfo.jpg作为php文件来解析了
这也是一个逻辑问题,所以说我们只需要在正常的jpg后面加/.php就可以成功的绕过解析

猜你喜欢

转载自blog.csdn.net/qq_36618918/article/details/106690116