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还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
  • 后缀名最长只有3位,多余的被截断。
  • 我们可以在启用.net的IIS下暴力列举短文件名,原因是:
  • 访问构造的某个存在的短文件名,会返回404
  • 访问构造的某个不存在的短文件名,会返回400

漏洞的修复

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

作者
分类 电脑网络, 网站建设

评论

本文评论功能已关闭。

← 较早的 较新的 →

相关文章