滲透測試弱點修補_Host header attack
一種在 HTTP 標頭上進行注入或竄改的攻擊
也時常會看到被稱作Host Header Injection
應用程式提供的網頁重新導向功能未檢查網址的合法性,攻擊者可以竄改連結,誘使受害者重新導向至釣魚網站。
攻擊者只需編輯主機頭即可手動轉移程式碼以產生駭客所需的輸出。最有可能的是,Web 伺服器被配置為將主機標頭傳遞到清單中的第一個虛擬主機,而無需進行適當的重組。因此可以將帶有任意主機頭的 HTTP 請求傳送到第一個虛擬主機。
實際常見案例,可能忘記密碼寄發的mail夾帶的link
由於我們一般人可能負擔不起或沒有飽嗝套裝(Burp suite)
所以你可以用類似這指令來try
測試方式
curl --insecure -H "Host: malicious.com" https://www.xxxxxxabc123.com
若返回的302頁面有網址包含malicious.com
基本上就代表確實存在host header attack風險
就伺服器層面(Apache的虛擬主機配置)進行配置,確保只有合法的Host標頭才能訪問網站。
修復方式(在此舉例透過Apache架設的站台)
若是在ubuntu
需到/etc/apache2/sites-available 下的default-ssl.conf
<Directory /var/www/html >
....略
Require expr %{HTTP_HOST} == "你站台的域名"
</Directoryc>
若是在redhat
則是在/etc/httpd/conf.d 下的default-ssl.conf
<Directory /var/www/html >
....略
Require expr %{HTTP_HOST} == "你站台的域名"
</Directoryc>
redhat可能預設跳出來的歡迎頁面(資訊暴露也不少)
可參考以下此篇來關閉(註解掉)
https://webhostinggeeks.com/howto/how-to-remove-red-hat-enterprise-linux-test-page/
就程式碼AP層面修補
程式碼中可能的調整解套:避免寫$_SERVER['HTTP_HOST'],建議改寫成$_SERVER['SERVER_NAME']。
Prevent Host header attack
https://stackoverflow.com/questions/43941048/prevent-host-header-attack
HTTP Host Header 資安弱點
https://blog.darkthread.net/blog/host-header-vulnerability/
PHP無法在$_SERVER內取得自訂header
https://kingfff.blogspot.com/2017/05/apache-php-header-server-invalid-characters-underscores.html
資安議題 — Http Security Header
https://medium.com/%E7%A8%8B%E5%BC%8F%E6%84%9B%E5%A5%BD%E8%80%85/%E9%97%9C%E6%96%BC%E5%AE%89%E5%85%A8%E6%80%A7%E7%9A%84header-b3b7adcb0fca
利用HTTP Host header頭攻擊技術詳解
https://www.fujieace.com/hacker/http-host-header.html
Is there a way to remove apaches Reverse Proxy Request Headers?
https://stackoverflow.com/questions/7312215/is-there-a-way-to-remove-apaches-reverse-proxy-request-headers
[PHP]使用$_SERVER擷取網址個別值
https://dotblogs.com.tw/jhsiao/2015/07/27/151960
HTTP Header Exploitation
https://blog.yeswehack.com/yeswerhackers/http-header-exploitation/
HTTP Header Injection
https://infosecwriteups.com/http-header-injection-4ba857fb9a16
留言
張貼留言