什麼是HTTP標頭注入?

zktq2021發表於2021-10-14

HTTP標頭注入漏洞是一個Web應用程式安全性的術語,指當攻擊者誘騙web應用到插入額外的HTTP頭到合法的HTTP響應。HTTP標頭注入是一種可用於促進惡意攻擊的技術,例如跨站點指令碼、Web快取中毒等。反過來,這些可能會導致資訊洩露、您的應用程式被用於網路釣魚攻擊以及其他嚴重後果。

HTTP 標頭注入是一種更通用的攻擊類別的特定案例:CRLF注入。如果攻擊者能夠在響應中注入CRLF序列(回車和換行),他們就能夠新增各種虛假條目或更改現有資料:不僅是標題,甚至是整個響應正文。


什麼導致HTTP標頭注入漏洞?


就像大多數 Web 應用程式安全漏洞一樣,HTTP標頭注入漏洞(以及一般的CRLF注入漏洞)是過度信任使用者輸入的結果。如果 Web 應用程式的開發人員直接在 HTTP 響應中使用外部資料,則通常可以執行 HTTP 標頭注入攻擊。

例如,假設您的業務轉移到一個新域,並且為了方便起見,您希望使用者書籤仍然有效。原始域是example.com但現在您的站點可以在example.info 上找到。如果您的普通使用者訪問過時的 URL,例如,您希望 Web 伺服器自動將使用者重定向到相應的新 URL:。

為了實現上述目標,您可以在example.com構建一個簡單的 Web 應用程式,該應用程式從 HTTP 請求中獲取路徑並將其附加到。如果該應用程式的開發人員在將輸入資料附加到新的基本 URL 之前沒有從輸入資料中消除 CR 和 LF 特殊字元,則攻擊者可能會使用該應用程式執行 HTTP 標頭注入攻擊。


HTTP標頭注入攻擊剖析


HTTP 標頭注入攻擊在許多方面類似於跨站點指令碼 (XSS) 攻擊。因此,存在反射 HTTP 標頭注入攻擊和(不太常見的)儲存 HTTP 標頭注入攻擊。

反射HTTP標頭注入


假設您是example.com域的所有者,並且攻擊者想要利用上述 HTTP 標頭注入漏洞。他們準備網路釣魚活動併傳送以下 URL:

%0d%0aLocation:vulnweb.com

作為 HTTP 標頭注入的結果,CRLF 字元被插入到響應中,然後是一個新的Location:標頭。Web 瀏覽器(取決於瀏覽器型別和配置)會將使用者重定向到攻擊者的站點(此處:vulnweb.com)。


儲存的HTTP標頭注入


儲存 HTTP 標頭注入漏洞和相關攻擊非常罕見。在這種情況下,惡意使用者輸入由 Web 應用程式儲存,例如儲存在資料庫中,然後直接用於傳送給其他使用者的 HTTP 響應。

就像儲存跨站點指令碼漏洞一樣,儲存 HTTP 標頭注入更危險,因為它可能會影響訪問您的網站或使用您的 Web 應用程式的所有使用者。


HTTP 標頭注入攻擊的後果


上面描述了 HTTP 標頭注入攻擊的最簡單案例 - 攻擊者可能會直接利用 HTTP 標頭注入漏洞將您的域作為網路釣魚攻擊的基礎。

但是,HTTP 標頭注入還有更多潛在的後果。例如,攻擊者可能會使用 HTTP 標頭注入來注入新的標頭,從而放鬆同源策略安全限制,從而可以執行其他原本不可能進行的攻擊,例如CSRF。

HTTP 標頭注入攻擊的另一個潛在用途是 HTTP 響應拆分。在這種情況下,攻擊者不僅會注入新的 HTTP 響應標頭,還會注入整個響應主體。使用Content-Length標頭,他們能夠讓受害者的瀏覽器完全忽略響應的合法主體(以及剩餘的合法標頭)。

由於CRLF注入的影響通常可能很嚴重(類似於跨站點指令碼的影響),儘管OWASP Top 10 中沒有特別提到這些漏洞,但不應掉以輕心。

由於HTTP標頭注入是 CRLF 序列不正確中和的結果,因此避免此類漏洞的最佳方法是在HTTP響應中使用之前對來自使用者輸入的 CRLF 序列進行編碼。這還可以防止其他利用CRLF注入的攻擊的後果,這甚至可能導致敏感資訊洩露、日誌檔案損壞或程式碼執行。


參讀連結:

https://www.acunetix.com/blog/web-security-zone/http-header-injection/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2797253/,如需轉載,請註明出處,否則將追究法律責任。

相關文章