IIS短文件名泄露漏洞学习

FreeBuf上有比较详细的介绍了,我就copy下,记录下对我来说有用的东西吧!

0x00 什么是IIS

Internet Information Services(IIS,以前称为Internet Information Server)互联网信息服务是Microsoft公司提供的可扩展Web服务器,支持HTTP,HTTP/2,HTTPS,FTP,FTPS,SMTP和NNTP等。起初用于Windows NT系列,随后内置在Windows 2000、Windows XP Professional、Windows Server 2003和后续版本一起发行,但在Windows XP Home版本上并没有IIS。IIS目前只适用于Windows系统,不适用于其他操作系统。

根据Netcraft在2017年2月的数据显示,IIS在“百万最繁忙网站”中的市场份额为10.19%,成为全球第三大网络服务器,落后于Apache 41.41%和 Nginx 28.34%。目前流行的Windows版本都默认安装IIS服务 ,但同时 IIS的安全性一直被业内诟病,一旦IIS出现高危漏洞威胁将会非常严重。

在接触IIS漏洞之前我们先来了解下不同Windows系统下默认内置的IIS版本,以便更好的理解和区分IIS漏洞的影响范围:

各种版本

0x01 什么是IIS短文件

1. IIS短文件漏洞的由来

Microsoft IIS 短文件/文件夹名称信息泄漏最开始由Vulnerability Research Team(漏洞研究团队)的Soroush Dalili在2010年8月1日发现,并于2010年8月3日通知供应商(微软公司)。微软公司分别于2010年12月1日和2011年1月4日给予答复下个版本修复。2012年6月29日,此漏洞公开披露(中危)。

此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(〜)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。

Microsoft IIS 波浪号造成的信息泄露是世界网络范围内最常见的中等风险漏洞。这个问题至少从1990年开始就已经存在,但是已经证明难以发现,难以解决或容易被完全忽略。

2. IIS短文件漏洞影响范围及危害

2.1受影响的版本:
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(远程启用<customErrors>或没有web.config)
IIS 7.5,Windows 2008(经典管道模式)

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

经验证,以上受影响范围主要是针对HTTP GET方法,且需要同时安装ASP.NET应用程序。该漏洞发现者在2014年再次披露:在测试IIS 7.5(Windows 2008 R2)和IIS 8.0(Windows 2012)过程中,当使用OPTIONS来代替GET 方法时,如果请求中的短文件名是存在的,IIS就会返回一个不一样的错误信息。利用这种特点,攻击者就可以在最新的IIS版本中,实现基于短文件名的文件或目录扫描了。

目前IIS支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,经千里目实验室验证,IIS 8.0、IIS 8.5和IIS 10.0的短文件名称均可以通过OPTIONS和TRACE方法被猜测成功。所以上述受影响版本需要再加上如下版本:

IIS 8.0,Windows 8, Windows Server 2012
IIS 8.5,Windows 8.1,Windows Server 2012 R2
IIS 10.0,Windows 10, Windows Server 2016
2.2漏洞危害:
2.2.1 利用“~”字符猜解暴露短文件/文件夹名 (主要危害)

Windows 支持以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16 位 Windows的程序访问这些文件。在cmd下进入IIS网站根目录C:\inetpub\wwwroot输入“dir /x”即可看到短文件名的效果:


IIS短文件名

如上图是Windows 10内置的IIS 10.0默认站点根目录,iisstart.htm和iisstart.png是网站默认文件,文件名前缀字符长度均没有达到9位,所以没有短文件名。IIS10test.html是人为添加的网站文件,文件名前缀字符长度达到了9位,对应的短文件名为IIS10T~1.HTM。根据此特性,我们能够通过访问短文件名间接访问它对应的文件。

由于短文件名的长度固定(xxxxxx~xxxx),因此攻击者可直接对短文件名进行暴力破解 ,从而访问对应的文件。

举个例子,有一个数据库备份文件 backup_20180101.sql ,它对应的短文件名是 backup~1.sql 。因此攻击者只要暴力破解出backup~1.sql即可下载该文件,而无需破解完整的文件名。

IIS短文件名有以下几个特征:

1.只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同);

2.后缀名最长只有3位,多余的被截断,超过3位的长文件会生成短文件名;

3.所有小写字母均转换成大写字母;

4.长文件名中含有多个“.”,以文件名最后一个“.”作为短文件名后缀;

5.长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件;

我们可以在启用.net的IIS下使用GET方法暴力列举短文件名,原因是攻击者使用通配符“*”和“?”发送一个请求到IIS,当IIS接收到一个文件路径中包含“~”请求时,它的反应是不同的,即返回的HTTP状态码和错误信息不同。基于这个特点,可以根据HTTP的响应区分一个可用或者不可用的文件。如下图所示不同IIS版本返回信息的不同:


IIS 5.0 ~ IIS 7.X短文件猜解HTTP响应信息

上图是由此漏洞发现者Soroush Dalili在其研究报告中给出的IIS短文件合法和不合法猜解响应信息的图解:

访问构造的某个存在的短文件名,会返回404;

访问构造的某个不存在的短文件名,会返回400;


利用IIS 状态码猜解过程

以上方法是在IIS较低版本+ASP.NET环境下使用GET方法反复循环猜测,直到猜解出短文件名。

但是千里目实验室在真实环境验证发现,在IIS高版本(如:IIS 8.0/IIS 8.5/IIS 10.0),即使没有安装asp.net,通过OPTIONS和TRACE方法也可以猜解成功。这两种方法猜解返回的HTTP状态码类型和上述截图有些许出入,但是不失为另一种利用方式。

2.2.2 .Net Framework的拒绝服务攻击 (副危害)

据Soroush Dalili在研究表明,攻击者如果在文件夹名称中向发送一个不合法的.Net文件请求,.NeFramework将递归搜索所有的根目录,消耗网站资源进而导致DOS问题。微软认为此危害是可恢复的DOS,将在后续SP版本修改,此处不做探讨研究。

https://www.freebuf.com/articles/web/172561.html
(还没抄完)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,333评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,812评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,016评论 0 246
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,293评论 0 214
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,650评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,788评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,003评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,741评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,462评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,681评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,168评论 1 262
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,528评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,169评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,119评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,902评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,846评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,719评论 2 274

推荐阅读更多精彩内容

  • 漏洞简介 为了兼容16位MS-DOS程序,Windows为文件名较长的文件(和文件夹)生成了对应的windows ...
    鸡翅儿阅读 732评论 0 0
  • Apache 文件名解析 与Windows不同,Apache对文件的解析名不是仅仅认识最后一个后缀名,而是从右向左...
    Echocipher阅读 4,598评论 0 1
  • 命令简介 cmd是command的缩写.即命令行 。 虽然随着计算机产业的发展,Windows 操作系统的应用越来...
    Littleston阅读 3,268评论 0 12
  • 最近在看《图说区块链》, 区块链是什么?似乎很难用一两句话来解释。 刷一遍这本书还看不懂,要2刷。 从功能上来讲数...
    一只淡定的猫阅读 135评论 0 0
  • 昨夜清宫瘦,晋城闹不休; 若非尚念窦,誓不朝唐宋。
    冷秋静阅读 190评论 0 0