Security
IIS 使用沒有 Host 標頭的 HTTP/1.0 請求洩漏內部 IP
對我們的 IIS 10 伺服器的安全掃描顯示,
Location
當對文件夾(例如https://example.org/Content
. 這會生成以下內容(xxx
代表內部 IP):HTTP/1.1 301 Moved Permanently Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Content-Type: text/html; charset=UTF-8 Expires: -1 Location: https://xxx.xxx.xxx.xxx/Content/ ....
幾個問題:
- 解決此問題的最佳做法是什麼?
- 我們如何在掃描軟體之外發出 GET HTTP/1.0 請求來模擬這一點並在修復後對其進行測試?
謝謝你。
**更新:**嘗試了這篇文章中的 URL 重寫規則,但它會引發 500 錯誤。
本文連同這一概述通過中止缺少主機標頭的請求來防止此類攻擊(客戶端訪問伺服器資訊洩露漏洞)。
以下是解決此問題的步驟。確保您已安裝URL 重寫模組,
- 打開 IIS。
- 選擇您的網站。
- 點兩下 URL 重寫。
- 點擊右側“操作”面板中的“添加規則”。
- 選擇入站規則 > 請求阻止。
- 為規則輸入以下設置:
阻止訪問基於:主機頭
阻止請求:與模式不匹配
模式(主機頭):.+(讀作:“點加號”,意思是“匹配一個或多個任意字元”)
使用:正則表達式
如何阻止:中止請求 7. 點擊確定以保存規則。
**更新:**在 Windows Server 上執行的安全掃描顯示該漏洞在此更改後不再存在。