【中间件】IIS短文件名枚举漏洞

1.1.1  漏洞描述

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

 

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

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

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

1.1.2  漏洞测试

 

1.1.3  漏洞利用

 

1.1.4  漏洞修复

通用有效方法:

禁用windows系统中的短文件名功能。

打开注册表并打开此目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

修改 NtfsDisable8dot3NameCreation 的值为1 。

修改完成后,需要重启系统生效。

2)简单有效方法:CMD命令

Windows Server 2008 R2

查询是否开启短文件名功能:fsutil 8dot3name query

关闭该功能:fsutil 8dot3name set 1

Windows Server 2003

关闭该功能:fsutil behavior set disable8dot3 1

3)手动验证

新建文件夹并创建几个文件,打开CMD进入该文件夹呢执行dir /x 检测,看不到有显示短文件名则成功。

注: 1.Windows Server 2003修改后需要重启服务器生效!

   2.已存在的文件短文件名不会取消,只对以后创建的文件有效!

   3.WEB站点需要将内容拷贝到另一个位置,

   如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。

   如果不重新复制,已经存在的短文件名则是不会消失的。

posted @ 2018-03-08 17:53  Carrypan  阅读(12541)  评论(0编辑  收藏  举报