Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/irsdl/iis-shortname-scanner
侦察漏洞扫描器信息收集Web安全
GitHubirsdl/iis-shortname-scanner

IIS-ShortName-Scanner

IIS短文件名(8.3)信息泄露漏洞的最新版本扫描器

查看仓库
1.7k2692年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
IIS-ShortName-Scanner — IIS短文件名(8.3)信息泄露漏洞的最新版本扫描器 | Kitploit

IIS短文件名扫描器 - 2012-2023 & 仍然活跃

最新演讲:

  • 超越Microsoft IIS短文件名泄露

最新博文:

  • https://soroush.me/blog/2023/07/thirteen-years-on-advancing-the-understanding-of-iis-short-file-name-sfn-disclosure/

我建议大家在尝试这个旧工具之前,先试试@bitquark用Go写的新工具:https://github.com/bitquark/shortscan

最新版本的扫描器利用波浪号(~)字符检测IIS短文件名(8.3)泄露漏洞。这个问题在2010年被发现,但自那以后已经演变了几次。

这是一个老工具,代码像一团意大利面,但它甚至能够处理最新的IIS(撰写本文时是Windows Server 2022上的IIS 10)!它最近已更新,因此支持发送自定义HTTP方法,无需在Java中使用反射hack。然而,一些出色的研究人员已经尝试使用其他技术(如Go)重新实现这个工具,当它们成熟时,可能会比这个工具更好用。

描述

Microsoft IIS存在一个缺陷,可能导致未授权的信息泄露。该问题在解析包含波浪号(~)字符的请求时被触发。这可能允许远程攻击者获取文件和文件夹名称信息。

本扫描器已从https://code.google.com/p/iis-shortname-scanner-poc/ 迁移至GitHub以获得更好支持。

原始研究文件:http://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf

通过使用几种版本的Microsoft IIS中的一些向量,可以检测出在Windows中具有8.3等效名的文件和目录的短名称。例如,可以检测所有".aspx"文件的短名称,因为它们的扩展名有4个字母。

注意:本扫描器的最新版本引入了新技术,现在可以在IIS10存在漏洞时对其进行扫描。

根据短名称找到原始文件或文件夹名称并不容易。然而,以下方法作为示例被推荐:

  • 如果你能猜出完整扩展名(例如,当8.3扩展名为.ASP时,完整扩展名为.ASPX),总是尝试使用短名称加完整扩展名。
  • 有时短名称会列在Google中,可用于找到实际名称。
  • 也建议使用文本字典文件。如果一个名称以另一个单词开头,第二部分应根据字典文件单独猜测。例如,ADDACC~1.ASP可能是AddAccount.aspx、AddAccounts.aspx、AddAccurateMargine.aspx等。
  • 在网站内容和资源中搜索也有助于找到全名。例如,可以通过在Burp Suite工具中搜索Site Map来实现。

安装

最新版本使用Open JDK 18编译(为其他JDK编译的旧jar文件已被删除,但可以在Git历史中找到)。

你需要下载/release目录中的文件才能使用这个旧应用程序!

你也可以自己编译这个应用程序。请将任何问题提交到GitHub以供进一步调查。

用法

命令行选项

用法1(使用默认配置文件验证目标是否存在漏洞):

root@kitploit:~
java -jar iis_shortname_scanner.jar [URL]

用法2(使用默认配置文件查找8.3文件名):

root@kitploit:~
java -jar iis_shortname_scanner.jar [ShowProgress] [ThreadNumbers] [URL]

用法3(使用新的配置文件验证目标是否存在漏洞):

root@kitploit:~
java -jar iis_shortname_scanner.jar [URL] [configFile]

用法4(使用新的配置文件查找8.3文件名):

root@kitploit:~
java -jar iis_shortname_scanner.jar [ShowProgress] [ThreadNumbers] [URL] [configFile]

用法5(在Linux机器上扫描多个目标):

root@kitploit:~
./multi_targets.sh <scope file> <is_default_https (1=https)>

详情:

root@kitploit:~
 [ShowProgress]: 0= 仅显示最终结果 - 1= 逐步显示最终结果 - 2= 显示进度
 [ThreadNumbers]: 0= 无线程 - 整数 = 并发线程数 [注意IIS拒绝服务]
 [URL]: 完整URL - 以http/https协议开头
 [configFile]: https://raw.githubusercontent.com/irsdl/iis-shortname-scanner/HEAD/%E5%9F%BA%E4%BA%8Econfig.xml%E7%9A%84%E6%96%B0%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84

示例:

root@kitploit:~
- 示例0(查看目标是否存在漏洞):
 java -jar iis_shortname_scanner.jar http://example.com/folder/

- 示例1(不使用线程 - 非常慢):
 java -jar iis_shortname_scanner.jar 2 0 http://example.com/folder/new%20folder/

- 示例2(使用20个线程 - 推荐):
 java -jar iis_shortname_scanner.jar 2 20 http://example.com/folder/new%20folder/

- 示例3(将输出保存到文本文件):
 java -jar iis_shortname_scanner.jar 0 20 http://example.com/folder/new%20folder/ > c:\results.txt

- 示例4(绕过IIS基本认证):
 java -jar iis_shortname_scanner.jar 2 20 http://example.com/folder/AuthNeeded:$I30:$Index_Allocation/

- 示例5(使用新的配置文件):
 java -jar iis_shortname_scanner.jar 2 20 http://example.com/folder/ newconfig.xml 
 
- 示例6(在Linux机器上扫描多个目标):
 ./multi_targets.sh scope.txt 1

注意1:编辑config.xml文件以更改扫描器设置并添加额外的头部。 注意2:有时第一次不起作用,需要重试。

工作原理

在以下示例中,当文件存在时,IIS会返回不同的消息:

root@kitploit:~
http://target/folder/valid*~1.*/.aspx
http://target/folder/invalid*~1.*/.aspx

然而,不同的IIS服务器可能响应不同,例如其中一些可能适用于以下或其他类似模式:

root@kitploit:~
http://target/folder/valid*~1.*\.asp
http://target/folder/invalid*~1.*\.asp

请求的发送方法(如GET、POST、OPTIONS、DEBUG等)也很重要。

我认为通过代理监视请求是理解这个问题和这个扫描器的最佳方式。

如何修复此问题

Microsoft不会修复这个安全问题。他们最后的回复如下:

感谢您联系微软安全响应中心。

我们感谢您将此事提请我们注意。我们之前的指导仍然有效:部署IIS时禁用8.3名称。

因此,建议在Windows操作系统上创建以下注册表项来部署禁用8.3名称的IIS:

root@kitploit:~
	Key:   HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
	Name:  NtfsDisable8dot3NameCreation 
	Value:        1 

注意:需要重新创建Web文件夹,因为对NtfsDisable8dot3NameCreation注册表项的更改只会影响更改后创建的文件和目录,因此已存在的文件不受影响。

Docker 用法

构建镜像:

root@kitploit:~
docker build . -t shortname

文件模式:

root@kitploit:~
docker run \
  -v $(realpath urls.txt):/app/urls.txt \
  -v $(realpath output_dir):/app/iis_shortname_results \
  shortname -f urls.txt

单目标模式:

root@kitploit:~
docker run shortname 2 20 http://example.com

覆盖配置文件:

root@kitploit:~
docker run \
-v $(realpath config.xml):/app/config.xml \
shortname http://example.com

参考文献

研究链接:

  • https://soroush.me/blog/2023/07/thirteen-years-on-advancing-the-understanding-of-iis-short-file-name-sfn-disclosure/
  • https://soroush.secproject.com/blog/2014/08/iis-short-file-name-disclosure-is-back-is-your-server-vulnerable/
  • http://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf (旧版原始研究)

网站参考:

  • http://soroush.secproject.com/blog/2012/06/microsoft-iis-tilde-character-vulnerabilityfeature-short-filefolder-name-disclosure/

视频链接:

  • https://www.youtube.com/watch?v=KbZ-y7b7yDs 在SteelCon 2023
  • https://www.youtube.com/watch?v=HrJW6Y9kHC4 由shubs (@infosec_au)制作
  • http://www.youtube.com/watch?v=XOd90yCXOP4

其他链接:

  • http://www.osvdb.org/83771
  • http://www.exploit-db.com/exploits/19525/
  • http://securitytracker.com/id?1027223
下载工具