IIS短文件名泄露漏洞

栏目: ASP.NET · 发布时间: 5年前

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

一、 漏洞描述

Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。

危害:攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

二、 漏洞成因

为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows 8.3 短文件名。

在Windows下查看对应的短文件名,可以使用命令 dir /x

IIS短文件名泄露漏洞

如上图,Downloads对应的短文件名为DOWNLO~1。根据此特性,我们能够通过访问短文件名间接访问它对应的文件。

由于短文件名的长度固定(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

三、 漏洞的利用

漏洞的利用,需要使用到通配符。在windows中,可以匹配n个字符,n可以为0.判断某站点是否存在IIS短文件名暴力破解,构造payload,分别访问如下两个URL:

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

2. http://www.xxx.com/1234 *~1****/a.aspx

这里使用了4个星号,主要是为了程序自动化猜解,逐个猜解后缀名中的3个字符,实际上,一个星号与4个星号没有任何区别(上面已经提到,*号可以匹配空)。

如果访问第一个URL,返回404,

IIS短文件名泄露漏洞

而访问第二个URL,返回400,

IIS短文件名泄露漏洞

则目标站点存在漏洞。

判断漏洞存在后,继续猜解目录下是否存在一个a开头的文件或文件夹,访问:

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

如果存在,将返回404。

如此反复,不断向下猜解完所有的6个字符。

猜解完之后,得到的序列应该类似:

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

到了这一步,需要考虑两种情况,如果以abcdef开头的是一个文件夹,则

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

将返回404.

如果abcdef开头的是一个文件,则自动提交

http://www.xxx.com/abcdef *~1*g**/a.aspx

用a-z的26个字母替换上述g的位置,应该能得到多个404页面。(记住一点,404代表的是存在。)如果下面的地址返回404,

http://www.xxx.com/abcde *~1*g**/a.aspx

则代表扩展名中肯定存在g。

按照上面的思路,继续猜解g后面的字符,直到后缀名中的3个字符都猜解完,就可以了。

以上介绍了怎么手工猜解,这个漏洞的意义何在:

1)   猜解后台地址

2)   猜解敏感文件,例如备份的rar、zip、.bak、.SQL文件等。

3)   在某些情形下,甚至可以通过短文件名web直接下载对应的文件。比如下载备份 SQL 文件。

四、 漏洞的局限性

这个漏洞的局限有几点:

1)   只能猜解前六位,以及扩展名的前3位。

2)   名称较短的文件是没有相应的短文件名的。

3)   需要IIS和.net两个条件都满足

五、 解决方法

(一)    关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来说无需开启。

(二)    如果是虚拟主机空间用户,可采用以下修复方案:

1)  修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1(此修改只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除)。

2)  如果你的web环境不需要asp.net的支持你可以进入Internet 信息服务(IIS)管理器 — Web 服务扩展 – ASP.NET 选择禁止此功能。

3)  升级net framework 至4.0以上版本。

(三)    将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\ www.back ,然后删除原文件夹D:\www,再重命名D:\ www.back 到D:\www。如果不重新复制,已经存在的短文件名则是不会消失的。

(四)    对于虚拟主机空间用户,如果还不能彻底修复该问题,可以联系空间提供商协助修改。


以上所述就是小编给大家介绍的《IIS短文件名泄露漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码大全(第2版)

代码大全(第2版)

[美] 史蒂夫·迈克康奈尔 / 金戈、汤凌、陈硕、张菲 译、裘宗燕 审校 / 电子工业出版社 / 2006-3 / 128.00元

第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初......一起来看看 《代码大全(第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具