近期在网站安全检测过程中,我们发现了一个常见但极易被忽视的安全隐患:IIS短文件/文件夹漏洞。该漏洞被评定为中危风险,可能影响整个网站系统的稳定性。简单来说,攻击者能够利用IIS处理包含“~”字符的请求时所返回的特殊响应模式,逐步猜解服务器上的文件名与文件夹名,从而为后续的渗透攻击创造条件。
漏洞原理与潜在危害
此漏洞的根源在于NTFS文件系统的8.3短文件名机制。当IIS接收到一个包含“~”以及通配符(如“*”、“?”)的请求时,系统会根据目标文件是否存在而返回不同的HTTP状态码。例如,请求https://www.xxx.com/a*~1*/.aspx如果返回404,表示服务器上存在以字母a开头的文件;若返回400,则说明不存在此类文件。这种状态码的差异使得攻击者能够像“猜谜”一样,逐字符枚举服务器根目录中的文件与文件夹。
尽管该漏洞的危害等级被标记为“轻微”,但其实际影响绝不可小觑。攻击者利用这一漏洞能够枚举服务器文件列表,获取敏感信息,甚至对基于.NET Framework的服务发起拒绝服务攻击。造成漏洞的根本原因在于没有禁用NTFS的8.3文件名创建功能,这为恶意探测留下了可乘之机。

修复方案详解
网络上不少资料建议将.NET Framework升级到4.0以上即可修复,但实际测试发现,即使框架版本已达到4.0,扫描漏洞依然存在。这说明单一措施远远不够,必须多管齐下才能彻底解决。以下是经过验证的有效修复方案:
1. 关闭NTFS 8.3文件名支持
默认情况下,NTFS会为文件自动创建8.3格式的短名称,这对大多数用户来说并无必要,反而增加了安全风险。可以通过修改注册表或执行命令来关闭这一功能:
- 修改注册表项:
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation,将值设为1(修改后需重启服务器生效)。 - 执行DOS命令:
fsutil beha vior set disable8dot3 1
2. 禁用ASP.NET支持(若不需要)
如果网站的运行环境不需要ASP.NET,可以在IIS管理器中,将“Web服务扩展 → ASP.NET”设置为禁止状态。这样能直接消除相关的攻击面,降低被利用的风险。
3. 升级.NET Framework
确保.NET Framework版本在4.0以上,虽然单独升级不能完全解决漏洞,但它是基础性的防护措施,为后续修复提供必要的环境支持。
4. 重新部署IIS目录
最关键的一步:关闭8.3格式支持后,已经存在的短文件名并不会自动消失。必须重新创建目录和文件,才能彻底清除旧的短名称。具体做法是:将Web文件夹内容复制到另一个位置(例如从D:\www复制到D:\www.back),然后删除原文件夹,再将备份文件夹重命名为原名称。这样,新文件不会再生成短文件名,而原有的短文件名也被彻底清除。

按照上述步骤操作完成后,重新进行安全渗透扫描,即可确认IIS短文件漏洞不再出现。需要特别提醒的是,对于虚拟主机空间用户,由于无法直接操作服务器,应联系空间提供商协助完成修复工作。
