IIS短文件名泄露漏洞修复

一、漏洞的成因

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

图片描述

如上图,aegis_inst.exe对应的短文件名为aegis_~1.exe。根据此特性,我们能够通过访问短文件名间接访问它对应的文件。

由于短文件名的长度固定(xxxxxx~xxxx),因此黑客可直接对短文件名进行暴力破解 ,从而访问对应的文件。

举个例子,有一个数据库备份文件 backup_www.abc.com_20150101.sql ,它对应的短文件名是 backup~1.sql 。因此黑客只要暴力破解出backup~1.sql即可下载该文件,而无需破解完整的文件名。

该短文件名有以下特征:

  1. 只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。

  2. 后缀名最长只有3位,多余的被截断。
    我们可以在启用.net的IIS下暴力列举短文件名,原因是:

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

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

二、 漏洞的利用

漏洞的利用,需要使用到通配符。在windows中,可以匹配n个字符,n可以为0. 判断某站点是否存在IIS短文件名暴力破解,构造payload,分别访问如下两个URL:

1. http://www.target.com/*~1****/a.aspx
2. http://www.target.com/l1j1e*~1****/a.aspx

图片描述
图片描述

这里我使用了4个星号,主要是为了程序自动化猜解,逐个猜解后缀名中的3个字符,实际上,一个星号与4个星号没有任何区别(上面已经提到,*号可以匹配空)。

如果访问第一个URL,返回404,
而访问第二个URL,返回400,
则目标站点存在漏洞。

判断漏洞存在后,继续猜解目录下是否存在一个a开头的文件或文件夹,访问:

http://www.target.com/a*~1****/a.aspx

如果存在,将返回404。 如此反复,不断向下猜解完所有的6个字符。
猜解完之后,得到的序列应该类似:

http://www.target.com/abcdef*~1****/a.aspx

到了这一步,需要考虑两种情况,如果以abcdef开头的是一个文件夹,则

http://www.target.com/abcdef*~1/a.aspx

将返回404.
如果abcdef开头的是一个文件,则自动提交

http://www.target.com/abcdef*~1*g**/a.aspx

用a-z的26个字母替换上述g的位置,应该能得到多个404页面。(记住一点,404代表的是存在。)如果下面的地址返回404,

http://www.target.com/abcde*~1*g**/a.aspx

则代表扩展名中肯定存在g。
按照上面的思路,继续猜解g后面的字符,直到后缀名中的3个字符都猜解完,就可以了。

以上介绍了怎么手工猜解,这个漏洞的意义何在:

1. 猜解后台地址
2. 猜解敏感文件,例如备份的rar、zip、.bak、.SQL文件等。
3. 在某些情形下,甚至可以通过短文件名web直接下载对应的文件。比如下载备份SQL文件。

三、漏洞的局限性

这个漏洞的局限有几点:
1) 只能猜解前六位,以及扩展名的前3位。
2) 名称较短的文件是没有相应的短文件名的。
3)需要IIS和.net两个条件都满足。

四、漏洞的修复

1)通用有效方法:

禁用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。
         如果不重新复制,已经存在的短文件名则是不会消失的。

Starlight
盼望有点点星光照亮前进的方向
60 声望
2 粉丝
0 条评论
推荐阅读
yum安装Mongdb3.4
{代码...} {代码...} MongoDB用户角色配置 {代码...} 添加管理员 使用命令mongo进入命令行创建第一个用户,该用户需要有用户管理权限这里设置其角色为root {代码...} 新增的用户在system.users中 {代码...} 第一...

Starlight阅读 1.2k

CVE-2022-42889 Apache Commons Text RCE漏洞分析
最近一直在对刚研发出来的自动化Web/API漏洞Fuzz的命令行扫描工具进行维护更新(工具地址:[链接]),目前扫描工具已更新至第三个版本,新增了5条2022年CVE漏洞POC,修复了例如Content-Type和body类型不一致等问...

星阑科技阅读 507

封面图
注意 ! !|95% 的应用程序中发现错误配置和漏洞
业内权威机构 Synopsys 最近发布了一项研究报告,结果表明在进行4300次测试后,发现95%的应用程序中都至少都有一个影响安全的漏洞或配置错误,其中高危漏洞占20%,严重漏洞则占4.5%。在此次研究中,82% 的测试目...

SEAL安全阅读 322

4步消除漏洞积压
不断增长的漏洞积压,加上对修复哪些漏洞以及何时修复缺乏明确性,可能导致一系列包括浪费开发人员的时间,延迟上市时间,以及由于修复时间长而增加企业攻击面等问题。当代行业和环境要求快速、频繁地推出功能性...

SEAL安全阅读 287

平均110万个漏洞被积压,企业漏洞管理状况堪忧
在软件安全的世界中,企业在软件开发生命周期中都面临着漏洞带来的巨大挑战。开发人员每天都需要确保交付没有漏洞的代码,因此他们需要花费大量的时间来解决首要处理的漏洞问题以确保企业软件安全。然而确保产品...

SEAL安全阅读 255

国标解读|从关键信息基础设施安全国标看软件供应链安全
近日《信息安全技术 关键信息基础设施安全保护要求》国家标准正式发布,《要求》中更是从管理机制建立、采购管理、网络产品和设备提供者的责任义务与产品及服务的风险控制方面对供应链安全提出了具体要求。

墨菲安全阅读 221

精彩回顾|模糊测试技术(Fuzzing)研究精彩浅析
不可否认,智能模糊测试技术将重新定义开发安全新范式,覆盖更多应用场景、为业务安全赋能。模糊测试技术将是众多企业践行DevSecOps敏捷开发过程中的重要一环,让安全左移更智能。

云起无垠阅读 216

60 声望
2 粉丝
宣传栏