搜索

iis短文件名暴力枚举漏洞利用

发表于 2026-10-17 02:25:50 来源:烟消火灭网
```html

IIS 有个老毛病:短文件名。短洞利这玩意儿本来是文件给 DOS 兼容留的后路,结果成了信息泄露的名暴口子。你访问一个不存在的力枚长文件名,服务器返回 404;但如果你猜对了它对应的举漏 8.3 短名,服务器可能回你 400——状态码不一样,短洞利文件名就暴露了。文件

我头一回碰到这个漏洞是名暴在一个政府站上。当时用 dirsearch 扫目录,力枚全是举漏 404,但有个请求返回了 400。短洞利路径是文件 /abcde~1.a/。换成 /abcde~1.asp/ 还是名暴 400,再换成 /abcde~1.aspx/ 就变成 404 了。力枚这说明真实文件扩展名就是举漏 .asp,短名以 abcde 开头。就这么简单。

原理不复杂。Windows 为每个长文件名生成一个 8.3 格式的短名:前六个字符取长名的前六个非空格字符,后面跟 ~1,扩展名取前三个字符。如果重名,数字递增到 ~2、~3。IIS 在处理请求时,如果路径不符合短名规则,返回 404;如果匹配到了某个短名但请求方式不对(比如目录被当成文件访问),返回 400。攻击者靠这个差异就能逐字符猜出文件名。

枚举过程像拼图。先猜第一个字符,从 a 到 z、0 到 9 挨个试。比如请求 /a~1.a/ 返回 400,说明有个文件短名以 a 开头。再试 /aa~1.a/,返回 400 就继续,返回 404 就换下一个字符。每个位置最多试 36 次,六个字符也就两百多次请求。脚本跑起来几分钟的事。

但有个坑:短名里的字符不一定是长名的前六个。Windows 生成短名时会去掉空格和一些特殊字符,还会把长名里的数字和字母混排。我见过一个文件叫 backup_2023_config.xml,短名却是 BACKUP~1.XML。所以枚举出来的短名得反推长名,有时候对不上。不过对渗透来说,知道有个 backup 开头的 xml 文件就够了,直接猜 /backup_2023_config.xml 可能就下载下来了。

利用方式分两种。一种是找敏感文件,比如 web.config 的短名通常是 WEB~1.CON,枚举到就能尝试读取。另一种是找目录,/admin~1/ 这种,配合其他漏洞扩大战果。我见过最狠的是枚举出 /db~1/,然后发现是数据库备份目录,整站数据直接拖走。

防御方法也简单。微软在 IIS 8.0 之后默认关闭了短文件名生成,但很多老服务器还开着。注册表里 NtfsDisable8dot3NameCreation 设成 1 就能关。不过关了之后有些老程序可能跑不起来,得权衡。另一个办法是改 IIS 的 Request Filtering,把带 ~ 的请求全拦了。我一般直接上 WAF 规则,匹配 ~[0-9] 就阻断,误杀率极低。

这漏洞现在不算高危了,但内网渗透里还是好用。去年一个项目,外网打不进,进了内网之后用短文件名枚举找到了一台老 IIS 的备份目录,里面躺着数据库连接字符串。所以别小看这种老古董,有时候比花哨的 0day 还管用。

```
随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by iis短文件名暴力枚举漏洞利用,烟消火灭网   sitemap

回顶部