檢測到目標URL存在http host頭攻擊漏洞怎麼修復?

再做綠盟安全掃描的時候出現的問題,網上搜索一番,卻終究沒有明了的答案,問題描述如下:為了方便的獲得網站域名,開發人員一般依賴於HTTP Host header。例如,在php里用_SERVER["HTTP_HOST"]。但是這個header是不可信賴的,如果應用程序沒有對host header值進行處理,就有可能造成惡意代碼的傳入。


漏洞介紹,見烏雲文章:利用HTTP host頭攻擊的技術

一個有漏洞的JSP代碼案例:

使用HTTP代理工具,如BurpSuite篡改HTTP報文頭部中HOST欄位時,加紅框中變數即客戶端提交的HOST值,該值可被注入惡意代碼。因為需要控制客戶端的輸入,故該漏洞較難利用。

修復建議:

不要使用類似JSP中request.getServerName( )方法引用客戶端輸入的hostname值。拼接生成URL時引用靜態變數定義的伺服器域名,或者使用相對路徑生成URL。

最後:

一切的用戶輸入(用戶可控變數)都是不可信的,故減少用戶可控參數、對用戶輸入進行校驗是處理這類安全漏洞的思路。


.net環境下也檢測出來了,怎麼破?


網上搜來搜去說的都是nginxapache或者Django什麼的,我們一個應用,就直接是IIS環境,也被檢測出來這個了,不知道怎麼解決。求問


AppScan 安全掃描,建議裝上


瀉藥

host 寫入配置,取值時只從配置取。


推薦閱讀:

OpenSSL 漏洞對普通網民有什麼影響,應該做些什麼?
在烏雲審核漏洞是一種怎樣的體驗?
如何高效挖掘Web漏洞?
如何評價 FreeBuf 最近的新產品「漏洞盒子」?
《神探夏洛克》有沒有漏洞?

TAG:JSP | ApacheTomcat | HTTP | 漏洞 | host |