我們的一台 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。
答案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)路徑中重新部署程式碼,它也不會建立短名稱的檔案。
掃描就會通過:)