IIS短文件名泄露漏洞

前言:

漏洞描述:Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。
Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。
危害:攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

漏洞原因:

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。
在Windows下查看对应的短文件名,可以使用命令 dir /x,作者这里的操作环境是win2003+iis6.0的环境。

在这里插入图片描述
如上图所示,monodyfuck.txt文件对应的短文件名为MONODY~1.TXT,根据此特性,我们能够通过访问短文件名间接访问它对应的文件。
由于短文件名的长度固定(xxxxxx~xxxx),因此黑客可直接对短文件名进行暴力破解,从而访问对应的文件。
举个例子:
有一个数据库备份文件 backup_www.abc.com_20190101.sql,它对应的短文件名是 backup~1.sql 。因此黑客只要暴力破解出 backup~1.sql 即可下载该文件,而无需破解完整的文件名。
短文件名有以下特征:

1:只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
2:后缀名最长只有3位,多余的被截断。
3:访问构造的某个存在的短文件名,会返回404。
4:访问构造的某个不存在的短文件名,会返回400。
5:只有文件名大于等于9个字符时,才会出现短文件名。

漏洞复现:

关于iis短文件名漏洞的利用,是需要使用到通配符的,在windows中,"*"号可以匹配n个字符,"?"号是匹配单个字符。
判断当前站点是否存在iis短文件名漏洞可以构造如下payload:

http://www.xxx.com/*~1****/a.aspx
http://www.xx.com/test*~1****/a.aspx

这里在URL中使用了4个星号,主要是为了程序自动化猜解,逐个猜解后缀名中的3个字符,实际上,一个星号与4个星号没有任何区别(上面已经提到,*号可以匹配空)
访问第一个URL,返回404
在这里插入图片描述
访问第二个URL,返回400
在这里插入图片描述
说明当前iis服务器是存在短文件名漏洞的。
判断出存在漏洞以后,我们现在要判断目录中是否存在monodyfuck.txt文件。
payload如下:http://192.168.107.131/m*~1****/a.aspx
如果存在m开头的文件,则返回404,如果不存在m开头的则返回400

在这里插入图片描述
如此反复,不断猜解完所有的6个字符
最后的payload应该如下:http://192.168.107.131/monody*~1****/a.aspx
但是此时,需要考虑两种情况,一种是monody*~1可能是一个文件,另一种就是可能为目录

继续判断,构造payload:http://192.168.107.131/monody*~1/a.aspx
在这里插入图片描述
如上图所示,返回的是400,说明当前monody*~1是一个文件,而非目录,如果是目录的话,则返回的是404。
既然已经判断出文件,那么如何判断出文件后缀名呢?
构造payload:http://192.168.107.131/monody*~1*t*/a.aspx
在这里插入图片描述

以此类推,使用a-z的26个字母依次替换t的位置,如上图所示,当构造的后缀第一个字符为t时,页面返回404,说明存在一个以t结尾的文件,按照上面的思路,继续将t后面的*号使用a-z的26个字母替换,直到后缀名中的3个字符都猜解完,就可以了。
如下图所示:
在这里插入图片描述
最终判断出目录中存在短文件名为:monody*~1*txt的文件。
那么该漏洞的意义在哪里呢?

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

漏洞的局限性:

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

修复方式:

1:关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来说无需开启。
2:如果是虚拟主机空间用户,可采用以下修复方案:修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1(此修改只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除)。
如果你的web环境不需要asp.net的支持你可以进入Internet 信息服务(IIS)管理器 — Web 服务扩展 – ASP.NET 选择禁止此功能。
升级net framework 至4.0以上版本。
3:将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的
4:对于虚拟主机空间用户,如果还不能彻底修复该问题,可以联系空间提供商协助修改。

猜你喜欢

转载自blog.csdn.net/cj_Allen/article/details/105358544
今日推荐