訪問(wèn)網(wǎng)站時(shí)如果訪問(wèn)路徑中缺少/,大多數(shù)中間件都會(huì)自動(dòng)將路徑補(bǔ)全,返回302或301跳轉(zhuǎn)如下圖,Location位置的域名會(huì)使用Host頭的值。
這種情況實(shí)際上風(fēng)險(xiǎn)較低,難以構(gòu)成Host頭攻擊。但是由于大多漏洞掃描器會(huì)將這種情況檢測(cè)為Host頭攻擊,為了通過(guò)上級(jí)檢查或各種審核,大多數(shù)甲方單位會(huì)要求修復(fù)漏洞,徹底解決問(wèn)題。

該跳轉(zhuǎn)路徑不是web項(xiàng)目定義的,是中間件自動(dòng)跳轉(zhuǎn)的,所以不能用編寫(xiě)靜態(tài)變量的方法修復(fù),web項(xiàng)目中的全局過(guò)濾器也無(wú)法攔截。需要在web服務(wù)器層面配置才能修復(fù)。下面給出幾種常見(jiàn)服務(wù)器的參考修復(fù)方法,其中如有錯(cuò)誤或不妥的地方歡迎指正。
Apache:
方法一:
修改confhttpd.conf文件
修改ServerName為應(yīng)用的域名,例如
ServerName www.domain.com:80
添加下列行
UseCanonicalName On
重啟Apache即可。
修復(fù)成功的話會(huì)看到,服務(wù)器端將會(huì)使用設(shè)定好的ServerName。

參數(shù)解釋?zhuān)?/p>

方法二:
修改confhttpd.conf文件
參考以下配置添加:
NameVirtualHost 192.168.1.25
ServerName 192.168.1.25
Order Allow,Deny
Deny from all
DocumentRoot "C:www"
ServerName www.test.com
重啟Apache即可。
作用:
拒絕直接通過(guò)192.168.1.25這個(gè)IP的任何訪問(wèn)請(qǐng)求,這時(shí)如果你用192.168.1.25訪問(wèn),會(huì)提示拒絕訪問(wèn)。僅允許通過(guò)www.test.com這個(gè)域名訪問(wèn),主目錄指向C:www
方法三:
修改confhttpd.conf文件
找到"#LoadModule rewrite_module modules/mod_rewrite.so"去除前面的"#"號(hào)
添加類(lèi)似以下配置:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^192.168.1.25$ [NC]
RewriteRule ^(.*)$ /error.html
重啟Apache即可。
作用:
當(dāng)HOST頭不是192.168.1.25時(shí),重定向到錯(cuò)誤頁(yè)面。
Nginx:
方法一:
修改nginx.conf
添加一個(gè)默認(rèn)server,當(dāng)host頭被修改匹配不到server時(shí)會(huì)跳到該默認(rèn)server,該默認(rèn)server直接返回403錯(cuò)誤。
例子如下:
server {
listen 8888 default;
server_name _;
location / {
return 403;
}
}
重啟nginx即可。
方法二:
修改nginx.conf
在目標(biāo)server添加檢測(cè)規(guī)則,參考以下標(biāo)紅配置:
server {
server_name 192.168.1.121;
listen 8888;
if ($http_Host !~*^192.168.1.121:8888$)
{
return 403;
}
include /etc/nginx/default.d/*.conf;
location / {
root /www/dvwa;
index index.php index.html index.htm;
}
}
重啟nginx即可。

Tomcat:
修改tomcatconfserver.xml
找到如下位置:
將Host里的name修改為靜態(tài)的域名,如下:
重啟tomcat即完成修復(fù)。
IIS6.0:
使用ISAPI_Rewrite插件對(duì)請(qǐng)求包內(nèi)容進(jìn)行檢測(cè)并重寫(xiě)URL。
插件安裝包和破解工具下載地址:https://pan.baidu.com/s/1hZVfCm7FraQWHlKMKyItFQ
下載完成后雙擊程序一直點(diǎn)擊下一步安裝即可。
破解工具解壓后如圖三個(gè)文件

將破解的這三個(gè)文件直接復(fù)制粘貼到ISAPI_Rewrite的安裝目錄,也就是覆蓋掉官方的原文件, 如果提示不能覆蓋,你可以先將官方的這個(gè)三個(gè)文件重命名其它的名字,再將這個(gè)三個(gè)破解文件復(fù)制過(guò)來(lái)。
替換完成后,必須為ISAPI_Rewrite.dll添加SERVICE用戶(hù)組,并授予讀取、讀取和運(yùn)行權(quán)限。(該步非常重要,否則后續(xù)ISAPI_Rewrite將無(wú)法工作)。
打開(kāi)IIS管理工具,選擇目標(biāo)項(xiàng)目->屬性->ISAPI篩選器->添加->選擇你安裝的ISAPI_Rewrite.dll文件的路徑->確定
重啟IIS和重新打開(kāi)IIS管理工具,在目標(biāo)項(xiàng)目->屬性中可以看到新增的ISAPI_Rewrite標(biāo)簽,在這里可以根據(jù)需求直接寫(xiě).htaccess規(guī)則進(jìn)行重定向。

配置Host頭白名單,可參考以下規(guī)則。
配置完成點(diǎn)擊應(yīng)用后,當(dāng)請(qǐng)求包中Host字段不為設(shè)定好的192.168.2.141時(shí),會(huì)自動(dòng)跳轉(zhuǎn)到報(bào)錯(cuò)頁(yè)面。
IIS7.0/7.5/8.0:
微軟推出了一款URL 重寫(xiě)模塊工具,可對(duì)請(qǐng)求URL進(jìn)行過(guò)濾處理,此工具需要自行安裝,下面提供工具下載地址:
微軟下載地址(64位): http://www.microsoft.com/zh-cn/download/details.aspx?id=7435
微軟下載地址(32位): http://www.microsoft.com/zh-cn/download/details.aspx?id=5747
下載完成后雙擊程序一直點(diǎn)擊下一步安裝即可。
然后重新啟動(dòng)iis管理工具,此時(shí)可以看到IIS欄下有一個(gè)URL重寫(xiě)工具。
雙擊URL重寫(xiě)功能,然后在URL地址入站規(guī)則欄上添加規(guī)則。
選擇請(qǐng)求阻止。
參照下圖進(jìn)行配置規(guī)則,主機(jī)頭那填寫(xiě)好網(wǎng)站域名或ip即可,然后點(diǎn)擊確定。
此時(shí)雙擊剛創(chuàng)建的規(guī)則。
在請(qǐng)求的URL選擇項(xiàng)選擇“與模式不匹配”,在使用項(xiàng)那選擇“完成匹配”,在操作類(lèi)型那選擇“中止請(qǐng)求”,然后點(diǎn)擊右上角的應(yīng)用按鈕。
然后重新啟動(dòng)網(wǎng)站,此時(shí)重新測(cè)試就會(huì)發(fā)現(xiàn)當(dāng)host不是192.168.122.139時(shí),服務(wù)器會(huì)中止請(qǐng)求,從而起到防范host頭部的作用。

IIS 詳細(xì)配置
- 安裝偽靜態(tài)的工具后,重啟IIS
- 打開(kāi)網(wǎng)站,雙擊URL重寫(xiě)
- 添加請(qǐng)求 -- 請(qǐng)求阻止
- 配置如下:
字段 值 阻止依據(jù) 主機(jī)頭 阻止請(qǐng)求 與模式不匹配 模式(主機(jī)頭) 192.168.1.*** 使用 通配符 阻止方式 403
- 雙擊剛創(chuàng)建的規(guī)則 -- 模式不匹配 -- 完全匹配 -- 最下面(中止請(qǐng)求)
以上常見(jiàn)有關(guān)httphost頭技術(shù)問(wèn)題要點(diǎn)由博路網(wǎng)絡(luò)收集整理,能供大家參考學(xué)習(xí)使用,以提高宜興做網(wǎng)站的安全性。
