IIS6.0漏洞之短文件名猜解复现

1.短文件名产生背景

为了兼容16位MS-DOS程序,Windows为文件名较长的文件和文件夹生成了对应的DOS 8.3 短文件名。一般来说,文件名长度超过9位,就会显示短文件名 。

2.短文件名命名格式

  • 全部大写
  • 显示6位
  • 超过6位用~1表示
  • 不显示特殊字符
  • 后缀最多显示三位,其余的被截断

3.短文件名查看方式

在window下的cmd中输入dir /x 命令即可查看短文件名。如下图所示:

IIS6.0漏洞之短文件名猜解复现_第1张图片

4.短文件名泄露

在IIS的web服务中,当我们有时无法直接访问一些文件时,尝试在地址栏中插入一个存在通配符* 和?的请求,当IIS接收到一个文件路径中包含~的请求时,根据文件是否存在,得到的返回值是不同的,我们可以利用这一点来猜测未知的文件名。

例如:我们创建一个test.aspx的文件进行测试,猜测该文件的路径。

IIS6.0漏洞之短文件名猜解复现_第2张图片

首先,根据访问构造的某个存在的短文件名,会返回404可知,路径存在,且未知路径的最后一位是1;

然后尝试给该文件路径未知部分增加前缀,继续访问如下:

IIS6.0漏洞之短文件名猜解复现_第3张图片

访问构造的某个不存在的短文件名时,会返回400。推断该路径的第一位不是字母c。

5.短文件名漏洞利用

  • 手工猜解:根据文本第四部分的举例说明,手动输入相关字符,根据返回值的不同,对短文件名进行枚举猜解即可,很明显这种方式效率较低。
  • 工具利用:IIS_shortname_Scanner-master 用法及下载地址链接:https://github.com/irsdl/IIS-ShortName-Scanner

6.短文件名漏洞局限性

  •  文件名只能猜6位,文件扩展名只能猜前3位。
  •  名称较短的文件是没有相应的短文件名的。
  •  需要iis和.net两个条件都满足。
  •  不支持文件名(或文件夹)是中文的猜测

7.影响版本

IIS 1.0,Windows NT 3.51  

IIS 3.0,Windows NT 4.0 Service Pack 2  

IIS 4.0,Windows NT 4.0选项包

IIS 5.0,Windows 2000  

IIS 5.1,Windows XP Professional和Windows XP Media Center Edition  

IIS 6.0,Windows Server 2003和Windows XP Professional x64 Edition  

IIS 7.0,Windows Server 2008和Windows Vista  

IIS 7.5,Windows 7(远程启用或没有web.config)

IIS 7.5,Windows 2008(经典管道模式)

注意:IIS使用.Net Framework 4时不受影响

8.短文件名漏洞的修复

  • 升级.Net Framework4.0以上版本,下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=17718
  • 修改注册表键值HKEY\ LOCAL MACHINE\\SYSTEM\\CurrentControlSet\\Control\\FileSystem中的 NtfsDisable8dot3 Name Creation值为1,1代表不创建短文件名格式

  IIS6.0漏洞之短文件名猜解复现_第4张图片

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

注:本次测试环境均在windows server 2003虚拟机上进行

你可能感兴趣的:(渗透学习,中间件漏洞,IIS短文件名,IIS短文件名漏洞及其局限性,IIS短文件名漏洞修复,IIS短文件名影响版本,IIS短文件名格式)