IIS短檔名漏洞復現

雨中落葉發表於2019-07-27

IIS短檔名漏洞復現

一、漏洞描述

此漏洞實際是由HTTP請求中舊DOS 8.3名稱約定(SFN)的代字元(~)波浪號引起的。它允許遠端攻擊者在Web根目錄下公開檔案和資料夾名稱(不應該可被訪問)。攻擊者可以找到通常無法從外部直接訪問的重要檔案,並獲取有關應用程式基礎結構的資訊。

二、漏洞原理

IIS的短檔名機制,可以暴力猜解短檔名,訪問構造的某個存在的短檔名,會返回404,訪問構造的某個不存在的短檔名,返回400。

漏洞成因:

為了相容16位MS-DOS程式,Windows為檔名較長的檔案(和資料夾)生成了對應的windows 8.3短檔名。

在Windows下檢視對應的短檔名,可以使用命令dir  /x

  

短檔名特徵:

1.只顯示前6位的字元,後續字元用~1代替。其中數字1是可以遞增。如果存在檔名類似的檔案,則前面的6個字元是相同的,後面的數字進行遞增

  

2.字尾名最長只有3位,超過3位的會生成短檔名,且字尾多餘的部分會截斷。

  

3.所有小寫字母均轉換成大寫的字母

4.長檔名中包含多個”.”的時候,以檔案最後一個”.”作為短檔名的字尾

  

5.長檔名字首/資料夾名字元長度符合0-9和A-Z、a-z範圍且需要大於等於9位才會生成短檔名,如果包含空格或者其他部分特殊字元,不論長度均會生成短檔案。

  

三、漏洞環境搭建及漏洞復現

1、 測試環境為windows server 2003 r2,開啟webdav服務和net服務。

  

2、使用payload驗證目標是否存在IIS短檔名漏洞,下圖顯示的404,說明目標存在該短檔名

Payload: http://192.168.10.130 /*~1*/a.aspx

http://192.168.10.130/ttt*~1*/a.aspx

注:*可以匹配n個字元,n可以為0 

  

3、瀏覽器訪問一個不存在的短檔名,返回”Bad Request(400)”,說明目標不存在該短檔名

  

4、通過瀏覽器訪問上面兩個payload,根據返回的結果,可以說明目標存在IIS短檔案漏洞

5、判斷漏洞存在後,接下來手工詳細分析猜解IIS短檔名原理

5.1、在網站根目錄(C:\Inetpub\wwwroot)下建立一個abcdef123456.txt檔案

5.2、瀏覽器分別訪問http://192.168.10.130/a*~1*/a.aspx, http://192.168.10.130/b*~1*/a.aspx

  

  

5.3、通過以上兩個圖片,可以看出存在一個以a開頭的短檔名

5.4、按照上面的方法依次猜解可以得到http://192.168.10.130/abcdef*~1*/a.aspx,到此,已經猜解出來短檔名,到了這一步,需要考慮兩種情況,以abcdef開頭的是一個資料夾還是一個檔案。

如果以abcdef開頭的是一個資料夾,那麼瀏覽器訪問http://192.168.10.130/abcdef*~1/a.aspx,將返回404,如果abcdef開頭的是一個檔案,需要猜解字尾名

5.5、瀏覽器訪問http://192.168.10.130/abcdef*~1/a.aspx,根據下圖返回結果說明以abcdef開頭的不是一個資料夾,而是一個檔案

  

5.6、瀏覽器訪問http://192.168.10.130/abcdef*~1.a*/a.aspx,根據下圖返回說明該短檔案字尾的第一位不是a 

  

5.7、用a-z的26個字母依次替換上述a的位置,當替換成t時,返回404頁面,說明該短檔案的第一位字尾是t

  

5.8、按照上面的方法依次猜解得到該短檔名的字尾是txt

5.9、到此為止,已經猜解出該短檔名為abcdef~1.txt

6、根據已經猜解出來的短檔名abcdef~1.txt,繼續猜解出該短檔名的完全檔名為abcdef123456.txt

7、使用IIS短檔名掃描軟體,獲取目標存在哪些短檔名

  

四、漏洞防禦

1、升級.net framework

2、修改登錄檔鍵值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

修改NtfsDisable8dot3NameCreation為1。修改完成後,需要重啟系統生效。

注:此方法只能禁止NTFS8.3格式檔名建立,已經存在的檔案的短檔名無法移除,需要重新複製才會消失。如果不重新複製,已經存在的短檔名則是不會消失的

2.1重啟系統之後,在網站根目錄(C:\Inetpub\wwwroot)下建立hhhhhhhhhhhhhhhhhhhh.txt,然後檢視是否會生成短檔名。下圖可以看到,沒有生成短檔名,說明防禦生效。

  

2.2、將wwwroot目錄下檔案複製到另一個back檔案下,然後刪除原wwwroot目錄下所有內容,再把back下的內容重新複製到wwwroot目錄下,這時重新檢視,則不存在短檔名了

  

五、總結

該漏洞的意義:

1、 猜解後臺地址

2、 猜解敏感檔案,例如備份的rar、zip、.bak、.sql檔案等。

3、 在某些情形下,甚至可以通過短檔名web直接下載對應的檔案。

該漏洞的侷限性:

1、 只能猜解前六位,以及副檔名的前三位。

2、 名稱較短的檔案是沒有相應的短檔名的。

3、 不支援中文檔名

4、 如果檔名前6位帶空格,8.3格式的短檔名會補進,和真實檔名不匹配

5、 需要IIS和.net兩個條件都滿足。

相關文章