Security

IIS 使用沒有 Host 標頭的 HTTP/1.0 請求洩漏內部 IP

  • September 27, 2021

對我們的 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 重寫模組

  1. 打開 IIS。
  2. 選擇您的網站。
  3. 點兩下 URL 重寫。
  4. 點擊右側“操作”面板中的“添加規則”。
  5. 選擇入站規則 > 請求阻止。
  6. 為規則輸入以下設置:

阻止訪問基於:主機頭

阻止請求:與模式不匹配

模式(主機頭):.+(讀作:“點加號”,意思是“匹配一個或多個任意字元”)

使用:正則表達式

如何阻止:中止請求 7. 點擊確定以保存規則。

**更新:**在 Windows Server 上執行的安全掃描顯示該漏洞在此更改後不再存在。

引用自:https://serverfault.com/questions/1078353