IIS-短文件猜解漏洞

IIS-短文件泄露漏洞

漏洞成因:

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

短文件名特征

  1. 只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增。
    [外链图片转存失败(img-eNuM8Cyu-1563508315107)(06D29A949A1B4AAEA27E27A26A6E8B73)]
  2. 后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断
    [外链图片转存失败(img-DcW8l987-1563508315112)(B12577F59ED248C79E2DC804B55B1FB2)]
    [这里1.aspx短文件名前缀的部分不知道是怎么生成的,网上找不到相关解释。但是生成的短文前缀是固定的,不管在哪个地方创建1.aspx名字都叫1D7DA~1.ASP]
  3. 所有小写字母均转换成大写的字母
  4. 长文件名中包含多个".“的时候,以文件最后一个”."作为短文件名的后缀[外链图片转存失败(img-oObgmAhq-1563508315113)(C68202C85B40473D836667B98A849814)]
  5. 长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件。
    [外链图片转存失败(img-tguqJIEK-1563508315115)(20ADD9F52B7448268FD86A387529D3B9)]

漏洞复现

访问下
http://目标网站/a*~1*/.aspx
通过这样不断猜测6位短文件名
如果存在网页则范围404,不存在则会返回400

网站目录下如下:
[外链图片转存失败(img-S6D5c4wA-1563508315117)(6AFE47B2669741AD84CB3EEB2936B5C4)]
[外链图片转存失败(img-cMd0txef-1563508315120)(0884365C9DC74AEDA615C567A045B3B5)]

先访问http://192.168.61.134/a*~1*/.aspx
[外链图片转存失败(img-ZzVngAiL-1563508315122)(921C6157C76947349BC8DCCD4A7F79A5)]
返回404说明第一个字符是a,然后继续往下猜解,直至猜出6位短文件名
[外链图片转存失败(img-fi9J39YC-1563508315123)(286FFF6CB65B4D1A8ABA81145DCE6322)]

如果不存在则会返回404
[外链图片转存失败(img-o1JCCShj-1563508315125)(D0E97662EB0F4C319713AF6645E570BD)]

这里我们用IIS_shortname_Scanner进行破解
[外链图片转存失败(img-a4DCJKcP-1563508315127)(E2B00E04AD2D43FD8E791F3BC3D7D9BE)]

漏洞的利用:

  1. 深入爆破猜测文件全名

通过IIS短文件漏洞猜测出来的短文件名称,需要继续猜测出全名才可以在IIS上进行访问,即IIS由于安全原因不支持短文件名访问。以下是Soroush Dalili给出的几种猜测文件全名的方法:

  1. 通过对目标网站或同类型网站进行爬虫,爬出建立一个字典库,再与得到的短文件名来猜剩下的字符 ;

  2. 利用fuzzdb(一个应用程序模糊测试(fuzzing)数据库)来猜解;

  3. 结合OWASP的dirbuster(一款路径及网页暴力破解的工具)。

Github上有研究人员已经用python将上述方法实现,并且获取到了网站后台的用户名和密码,很好的利用了IIS短文件漏洞。

研究报告地址:https://webbreacher.com/2014/10/23/tilde-enumeration/ (推荐)

python程序下载:https://github.com/WebBreacher/tilde_enum (推荐)


复现效果:

py -2 tilde_enum.py -u "http://192.168.61.134/" -d "C:\Tools\fuzzdb\discovery\predictable-filepaths\filename-dirname-bruteforce\raft-large-words-lowercase.txt" -w "C:\Tools\fuzzdb\discovery\predictable-filepaths\filename-dirname-bruteforce\raft-large-words-lowercase.txt"

在这里插入图片描述


  1. 结合支持短文件特性软件(Apache、Wordpress)

Acunetix研究指出当Apache运行在windows下,如果创建了一个长文件,那么无需猜解长文件,直接用短文件就可以下载了。例如一个backup_20180101.sql的长文件,其短文件是BACKUP1.SQL,攻击者只需要提交BACKUP1.SQL就可以直接访问并下载该文件。

此外,有学者表明,其在安装Wordpress备份插件之后,通过短文件名成功地访问到了了WordPress博客的备份文件。


复现效果:

文件目录内容如下:
在这里插入图片描述

尝试访问aaaaaaaaaaaaaaaaaaaa.txt内容
在这里插入图片描述

绕过Basic and Windows认证
Soroush Dalilide研究中还提到,在某些IIS服务器配置下,可以绕过Basic and Windows认证,猜解出认证目录下的文件。举例,如果需要访问一个开启认证的目录下文件时,比如这个目录是“AuthNeeded”,那么可以通过如下方式访问:

/AuthNeeded:: I n d e x A l l o c a t i o n /   1 / . a s p x / A u t h N e e d e d : Index_Allocation/~1/.aspx 或者 /AuthNeeded: I30:$Index_Allocation/~1/.aspx


漏洞局限性

1.此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解;

2.如果文件名本身太短(无短文件名)也是无法猜解的;

3.如果文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配;
在这里插入图片描述

4.如果文件夹名前6位字符带点“.”,扫描程序会认为是文件而不是文件夹,最终出现误报
在这里插入图片描述

在这里插入图片描述

5.不支持中文文件名,包括中文文件和中文文件夹。一个中文相当于两个英文字符,故超过4个中文字会产生短文件名,但是IIS不支持中文猜测。


其他关于IIS短文件名漏洞资料:

  1. https://www.freebuf.com/articles/web/172561.html
  2. https://www.freebuf.com/articles/web/172561.html
发布了156 篇原创文章 · 获赞 396 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/nzjdsds/article/details/96477876
今日推荐