目標(biāo)URL存在http_host頭攻擊漏洞復(fù)現(xiàn)及修復(fù)
漏洞說明
漏洞描述
為了方便的獲得網(wǎng)站域名,開發(fā)人員一般依賴于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是這個(gè)header是不可信賴的,如果應(yīng)用程序沒有對(duì)host header值進(jìn)行處理,就有可能造成惡意代碼的傳入。
危險(xiǎn)等級(jí)
中危
修復(fù)建議
web 應(yīng)用程序應(yīng)該使用 SERVER_NAME 而不是 host header。在 Apache 和 Nginx 里可以通過設(shè)置一個(gè)虛擬機(jī)來記錄所有的非法 host header。在 Nginx 里還可以通過指定一個(gè) SERVER_NAME 名單,Apache 也可以通過指定一個(gè) SERVER_NAME 名單并開啟UseCanonicalName 選項(xiàng)。
下圖為綠盟掃描器的報(bào)告截圖:
漏洞復(fù)現(xiàn)
可以使用 curl 或 BurpSuite 工具修改 Host 請(qǐng)求頭,復(fù)現(xiàn)測(cè)試
curl測(cè)試方法
curl -h
-I, --head Show document info only
-H, --header <header/@file> Pass custom header(s) to server
-v, --verbose Make the operation more talkative
curl -v -H "Host: www.baidu.com" http://192.168.64.149
測(cè)試結(jié)果:任意修改 Host 請(qǐng)求頭,服務(wù)器都能返回 302 Found
BurpSuite測(cè)試方法
BurpSuite 下載鏈接:
https://portswigger.net/burp/releases/professional-community-2022-1-1?requestededition=community
開啟代理抓包后,Send to Repeater
點(diǎn)擊 Send 重復(fù)發(fā)送當(dāng)前包,下面是未修改的正確 Host 請(qǐng)求頭,及其返回狀態(tài)碼:200 OK
任意修改 Host 請(qǐng)求頭,再發(fā)送數(shù)據(jù)包,觀察返回狀態(tài)碼??梢钥吹蕉寄芊祷兀?00 OK,即正常請(qǐng)求到 web 頁面
漏洞修復(fù)
漏洞修復(fù)方案
修改 nginx.conf 配置,設(shè)置 server_name,添加正則表達(dá)式匹配 host 請(qǐng)求頭的值,不匹配情況返回403。
# server_name localhost;
#### http_Host fix
server_name 127.0.0.1 192.168.64.149;
if ($http_Host !~* ^127.0.0.1$|^192.168.64.149$) {
return 403;
}
## 語義解析:
## ! 非
## ~ 匹配正則
## * 任意
## ^ 匹配開頭字符
## & 匹配末尾字符
## | 或
## 首先指定server_name字段值;
## 如果變量$http_Host不是(127.0.0.1或192.168.64.149),if判斷成立,執(zhí)行后面的內(nèi)容,即返回403跳轉(zhuǎn)頁面;
## 如果變量$http_Host是(127.0.0.1或192.168.64.149),if判斷不成立,則不執(zhí)行后面的內(nèi)容。
## 建議查閱nginx官方文檔:https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
重啟 nginx
nginx -s reload
漏洞修復(fù)驗(yàn)證
當(dāng) Host 請(qǐng)求頭正確匹配 server_name(127.0.0.1或者192.168.64.149)時(shí),服務(wù)器返回了 302 Found;
其他任意 Host 請(qǐng)求頭未匹配 server_name 的情況下,服務(wù)器都返回 403 Forbidden。
- curl 測(cè)試結(jié)果
- BurpSuite 測(cè)試結(jié)果
以上,如有錯(cuò)誤之處,敬請(qǐng)指正。文章來源:http://www.zghlxwxcb.cn/news/detail-456537.html
參考文章
https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
https://www.freesion.com/article/18441013466/
https://www.cnblogs.com/huiy/p/13427401.html文章來源地址http://www.zghlxwxcb.cn/news/detail-456537.html
到了這里,關(guān)于目標(biāo)URL存在http_host頭攻擊漏洞復(fù)現(xiàn)及修復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!