IIS短檔名洩露

2022-09-09 05:48:12 字數 2613 閱讀 8098

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

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

比如,我在d盤下建立了乙個名為aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.html檔案:

d:\>dir /x

驅動器 d 中的卷是 data

卷的序列號是 3edf-2e00

d:\ 的目錄

2014/10/11  13:08   256,515,706   2014101.sql

2014/10/13  17:01   0 aaaaaa~1.htm aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.html

2 個檔案    256,515,706 位元組

0 個目錄 107,017,154,560 可用位元組

觀察命令結果,可以看到,其對應的短檔名 aaaaaa~1.htm。該短檔名有以下特徵:

(1)只有前六位字元直接顯示,後續字元用~1指代。其中數字1還可以遞增,如果存在多個檔名類似的檔案(名稱前6位必須相同,且字尾名前3位必須相同)。

(2)字尾名最長只有3位,多餘的被截斷。

我們可以在啟用.net的iis下暴力列舉短檔名,原因是:

(1)訪問構造的某個存在的短檔名,會返回404;

(2)訪問構造的某個不存在的短檔名,會返回400。

【這個漏洞的意義何在】:

漏洞的利用,需要使用到萬用字元*。在windows中,*可以匹配n個字元,n可以為0。判斷某站點是否存在iis短檔名暴力破解,構造payload,分別訪問如下兩個url:

伺服器返回404。

這裡我使用了4個星號,主要是為了程式自動化猜解,逐個猜解字尾名中的3個字元,實際上,乙個星號與4個星號沒有任何區別(上面已經提到,*號可以匹配空)。

如果訪問第乙個url,返回404。而訪問第二個url,返回400。 則目標站點存在漏洞。

判斷漏洞存在後,繼續猜解目錄下是否存在乙個a開頭的檔案或資料夾,訪問:如果存在,將返回404。

如此反覆,不斷向下猜解完所有的6個字元。猜解完之後,得到的序列應該類似:

到了這一步,需要考慮兩種情況,如果以abcdef開頭的是乙個資料夾,則 將返回404。

如果abcdef開頭的是乙個檔案,則自動提交: 用a-z的26個字母替換上述g的位置,應該能得到多個404頁面。(記住一點,404代表的是存在。)如果下面的位址返回404, 則代表副檔名中肯定存在g。

按照上面的思路,繼續猜解g後面的字元,直到字尾名中的3個字元都猜解完,就可以了。

使用iis短檔名洩漏利用工具對漏洞進行利用:

漏洞修復以後:

漏洞的侷限

這個漏洞的侷限有幾點:

1、此漏洞只能確定前6個字元,如果後面的字元太長、包含特殊字元,很難猜解;

2、如果檔名本身太短(無短檔名)也是無法猜解的;

3、需要iis和.net兩個條件都滿足;

4、不支援中文檔名,包括中文檔案和中文資料夾。乙個中文相當於兩個英文本元,故超過4個中文字會產生短檔名,但是iis不支援中文猜測。

漏洞的修復

cmd關閉ntfs 8.3檔案格式的支援

舉例:(1代表關閉,0代表開啟)

windows server 2008 r2:

查詢是否開啟短檔名功能:fsutil 8dot3name query

關閉該功能:fsutil 8dot3name set 112

windows server 2003:

關閉該功能:fsutil beh**ior set disable8dot3 1

1不同系統關閉命令稍有區別,該功能預設是開啟的,對於大多數使用者來說無需開啟。

修改登錄檔禁用短檔名功能

快捷鍵win+r開啟命令視窗,輸入regedit開啟登錄檔視窗

找到路徑:

hkey_local_machine\system\currentcontrolset\control\filesystem,將其中的 ntfsdisable8dot3namecreation這一項的值設為 1,1代表不建立短檔名格式

修改完成後,需要重啟系統生效

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

以下兩種方法僅適用於緩解get 方法,其他方法依舊可以猜解。

關閉web服務擴充套件- asp.net

公升級netframework至4.0以上版本

漏洞修復 IIS短檔名洩露漏洞

internet information services iis,網際網路資訊服務 是由微軟公司提供的基於執行microsoft windows的網際網路基本服務。microsoft iis在實現上存在檔案列舉漏洞,攻擊者可利用此漏洞列舉網路伺服器根目錄中的檔案。危害 攻擊者可以利用 字元猜解或遍...

IIS短檔名洩露漏洞,請求方式OPTIONS

webconfig中加 另 詳細描述 internet information services iis,網際網路資訊服務 是由微軟公司提供的基於執行microsoft windows的網際網路基本服務。microsoft iis在實現上存在檔案列舉漏洞,攻擊者可利用此漏洞列舉網路伺服器根目錄中的檔...

獲取短檔名或路徑

一直在找.獲取短檔名或路徑的函式,可能自己笨沒有找到就自己寫了乙個.是通過呼叫winapi函式實現的.1.宣告getshortpathnamea dllimport kernel32.dll entrypoint getshortpathnamea private static extern int...