修復 IIS 波浪號漏洞

修復 IIS 波浪號漏洞

我們的一台 IIS 伺服器(IIS 7.5、Server 2008 R2)顯然“容易受到”波形符短檔名洩露問題。

然而,我很難真正解決這個問題。到目前為止,我已經

  • 停用 8.3 檔案名,停止 Web 伺服器,重新建立網站目錄並再次啟動服務

  • 新增了 URL 中波浪號的過濾規則:

在此輸入影像描述

  • 為任何地方的波形符號添加了過濾規則:

在此輸入影像描述

  • IISRESET一些時間

  • 檢查是否web.config新增了相關過濾規則

..但是,我仍然無法讓我的網站通過測試

java -jar ~/temp/IIS-ShortName-Scanner-master/IIS_shortname_scanner.jar http://www.example.com

[...SNIP...]

Testing request method: "TRACE" with magic part: "/webresource.axd" ...
Testing request method: "DEBUG" with magic part: "" ...
Testing request method: "OPTIONS" with magic part: "" ...
Testing request method: "GET" with magic part: "" ...
Reliable request method was found = GET
Reliable magic part was found = 
144 requests have been sent to the server:

<<< The target website is vulnerable! >>>

我還需要做什麼才能解決這個問題?

編輯:這裡DIR /x似乎沒有顯示 8.3 檔案名稱:

在此輸入影像描述

這是該網站的應用程式集區(伺服器上的所有其他網站都相同):

在此輸入影像描述

編輯2:驗證沒有剩餘 8.3 檔名:

在此輸入影像描述

答案1

嘗試使用以下命令掃描現有的短檔案名稱fsutil

  • fsutil 8dot3name scan /s /v E:\inetpub\wwwroot

如果發現它們,請將其剝離:

  • fsutil 8dot3name strip /s /v E:\inetpub\wwwroot

另外查看帶有空魔法部分 ( ) 的日誌magic part: "",我想知道這是否是 POC 中的一個錯誤。這條線在設定檔看起來後面有多餘的逗號/webresource.axd

<entry> key="magicFinalPartList">
 <![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx‌​,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]>
</entry>

我已經問過開發者了透過 Twitter 談論此事,他回應:

適用於極少數不需要延期的情況。但是,最近這只會引起更多問題!我現在就把它刪除。

我從配置文件中刪除了它。這是第二次投訴,因此現在是進行此更改的正確時機。

所以,看來你現在安全了:)

答案2

還有“注意:對 NtfsDisable8dot3NameCreation 註冊表項的更改僅影響更改後創建的文件、資料夾和配置文件。已存在的文件不受影響。”

注意:雖然停用 8.3 檔案名稱建立可提高 Windows 下的檔案效能,但某些應用程式(16 位元、32 位元或 64 位元)可能無法找到具有長檔案名稱的檔案和目錄。

答案3

不幸的是,真正解決這個問題的唯一方法是進行一組煩人的旋轉,這取決於您的 Windows 版本,停用產生 8.3 名稱的能力。

對於您的 Windows 版本:

若要在所有 NTFS 分割區上停用 8.3 名稱創建,請在提升的命令提示字元中鍵入 fsutil.exe Behaviour SetDisable8dot3 1,然後按 Enter。

來源: http://support.microsoft.com/kb/121007

答案4

最好的解決方案如下,因為我們無法在每次新部署後剝離。

使用以下連結測試/掃描網站是否有漏洞(安裝 java 並執行命令來測試/掃描)。

掃描網站的命令:

java -jar iis_shortname_scanner.jar 2 20 https://example.com/

掃描現有的短檔名:

fsutil 8dot3name scan /s /v c:\inetpub\wwwroot

檢查 8dot3 名稱建立是否已停用或已啟用:

fsutil 8dot3name query C:\Release\SiteRootDocumentPath

如果啟用了 8dot3 名稱創建,請使用以下命令停用:

fsutil 8dot3name set C:\Release\SiteRootDocumentPath 1

8dot3name 屬性設定為啟用指定磁碟區的 8dot3 名稱建立 (0) 或設定為停用指定磁碟區上的 8dot3 名稱建立 (1)

即使您在網站實體(SiteRootDocument)路徑中重新部署程式碼,它也不會建立短名稱的檔案。

掃描就會通過:)

相關內容