IIS 波形符枚举?听起来很酷,但那是什么......
在深入研究该漏洞之前,了解 8.3 文件名(也称为短名称或 SFN)非常重要。在 MS-DOS 时代,文件名遵循严格的格式:名称 8 个字符,扩展名 3 个字符,如 或 。此格式旨在与旧系统兼容。现代 Windows 系统支持长文件名,但仍会生成这些短名称别名以实现向后兼容性。在较旧或配置错误的服务器上,有时会枚举这些短名称。secret~1.txt
admin~1.aspx
是的,你猜对了!这会导致 IIS 波形符枚举漏洞,攻击者可以通过暴力破解短名称或在 GitHub 等平台上搜索类似路径来发现隐藏的文件或目录。
为什么使用波形符枚举而不是普通的暴力破解?
如果您脑海中闪过这个问题 — 那么您的想法是正确的。关键是 Tilde Enumeration 并没有取代暴力攻击,而是对暴力攻击进行了补充。它提供了一些明显的优势,值得一试:
以下是三个主要好处:
- 它甚至适用于非公共文件
像这样的文件可能永远不会出现在任何单词列表中。但是 Windows 会生成 — 这可以使用波浪号技巧来发现。secret-notes-final-rev2.txt
secret~1.txt
- 它缩小了您的攻击面
一旦您知道存在,您就可以尝试猜测全名或直接滥用该路径。您不必猜测数千种可能的变化。admin~1.aspx
- 波浪号枚举会泄露部分名称
与传统的暴力破解(需要完整文件名)不同,波浪号枚举会为您提供现有文件或目录的片段,例如 、 或 .这可以揭示:admin~1
backu~1
config~1
-
幕后存在一些东西 -
关于其实际名称的提示,即使您还不知道全名
让我们开始狩猎吧。
有多种工具可用于检测和可能利用此漏洞。但在开始之前,请记住这一点:漏洞赏金计划通常不接受单独的波形符枚举,除非它导致敏感文件或信息的泄露。在不影响的情况下,此类报告通常会被标记为信息性报告或被拒绝。
步骤 1:基线行为
- 首先,获取 IIS 上托管的目标的索引页。在这种情况下,我们会收到一个响应。
403 Forbidden
- 接下来,请求一个明显不存在的文件,例如 .您应该会看到一个错误 — 这确认了丢失文件的正常行为。
/nonexist
404 Not Found
- 现在尝试请求 .While the server still return ,请仔细观察 - 错误消息正文或结构经常更改,这表明存在短名称处理。
/ASPNET~1
404 Not Found
第 2 步:确认
要确认,您可以使用 Burp Suite 的 IIS ShortName Scanner 扩展。它通过分析短名称探测中的细微响应差异来自动进行检测。
或者,使用工具,如 默认情况下,它以递归方式运行。让它运行并监控部分匹配或名称泄漏。如果未显示任何结果,请尝试使用为 IIS 或企业文件命名约定定制的自定义单词表。shortscan
第 3 步:扩展发现
确定短名称路径(例如,/ASPNET_CLIENT/SYSTEM_WEB/4_0_30319)后,您可以使用过滤器搜索 GitHub:
path:/<KNOWN_SHORT_PATH>
这有助于显示与模式匹配的源代码、备份或部署构件。例如,您可能会找到对文件的引用。CAB 文件是 Windows 文件压缩文件,通常用于捆绑安装文件、DLL 或可执行文件。.cab
第 4 步:下载和分析工件
如果路径存在,请尝试直接使用 或 下载 CAB 文件。使用以下方法提取其内容:wget
curl
cabextract file.cab
这通常会显示 and files.分析 DLL:使用 dotPeek 进行静态检查和反编译。或者,使用 dnSpy — 在处理自定义 .NET 程序集时尤其有效。.exe
.dll
第 5 步:未找到敏感信息,现在该怎么办?
所以你找到了一些看起来很有趣但没有什么立即敏感的东西。不幸的是,除非它能产生明显的影响,否则并非每个计划都会接受该调查结果为有效结果。
就我而言,我必须更深入地挖掘。我从各种来源收集了单词列表,对它们进行了清理和重复数据删除,将它们输入到 shortscan 中,并继续列举以证明影响。最终,我找到了另一个自定义 DLL,这个 DLL 终于有了真正的好处:硬编码的内部 IP 和 API 密钥。
原文始发于微信公众号(红云谈安全):在 IIS 服务器上利用 8.3 短名称
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论