0x00 概述
漏洞名稱:Host頭攻擊
風險等級:低
問題類型:管理員設置問題
0x01 漏洞描述
Host首部字段是HTTP/1.1新增的,旨在告訴服務器,客戶端請求的主機名和端口號,主要用來實現(xiàn)虛擬主機技術。
運用虛擬主機技術,單個主機可以運行多個站點。
例如:hacker和usagidesign兩個站點都運行在同一服務器A上,不管我們請求哪個域名,最終都會被解析成服務器A的IP地址,這個時候服務器就不知道該將請求交給哪個站點處理,因此需要Host字段指定請求的主機名。
我們訪問hacker域名,經(jīng)DNS解析,變成了服務器A的IP,請求傳達到服務器A,A接收到請求后,發(fā)現(xiàn)請求報文中的Host字段值為hacker,進而將請求交給hacker站點處理。
這個時候,問題就出現(xiàn)了。為了方便獲取網(wǎng)站域名,開發(fā)人員一般依賴于請求包中的Host首部字段。例如,在php里用_SERVER["HTTP_HOST"],但是這個Host字段值是不可信賴的(可通過HTTP代理工具篡改)。
0x02 漏洞危害
如果應用程序沒有對Host字段值進行處理,就有可能造成惡意代碼的傳入。
0x03 修復建議
對Host字段進行檢測
Nginx,修改ngnix.conf文件,在server中指定一個server_name名單,并添加檢測。
Apache,修改httpd.conf文件,指定ServerName,并開啟UseCanonicalName選項。
Tomcat,修改server.xml文件,配置Host的name屬性。
更多信息歡迎關注我的個人微信公眾號:TeamsSix
原文地址:https://www.teamssix.com/year/191127-201443.html