IIS短文件名漏洞


一、 漏洞描述

Internet Information Services(IIS,互聯網信息服務)是由微軟公司提供的基於運行Microsoft Windows的互聯網基本服務。

Microsoft IIS在實現上存在文件枚舉漏洞,攻擊者可利用此漏洞枚舉網絡服務器根目錄中的文件。

危害:攻擊者可以利用“~”字符猜解或遍歷服務器中的文件名,或對IIS服務器中的.Net Framework進行拒絕服務攻擊。

二、 漏洞成因

為了兼容16位MS-DOS程序,Windows為文件名較長的文件(和文件夾)生成了對應的windows 8.3 短文件名。

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

圖片.png

如上圖,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,

圖片.png

而訪問第二個URL,返回400,

圖片.png

則目標站點存在漏洞。

判斷漏洞存在后,繼續猜解目錄下是否存在一個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。如果不重新復制,已經存在的短文件名則是不會消失的。

(四)    對於虛擬主機空間用戶,如果還不能徹底修復該問題,可以聯系空間提供商協助修改。

 

轉載至原文鏈接:https://www.freebuf.com/news/197144.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM