最近處理「主機標頭注入」弱點,花了很大力氣,總算告一段落,把相關資料筆記起來。
1.主機標頭注入是啥
弱點掃描的描述永遠是上個世紀的翻譯軟體做的,有時候寧願顯示英文orz簡單的說就是在開啟網頁時,另外輸入header資訊,導致網站發生錯誤。
2.如何測試主機標頭注入
以PHP來說,$_SERVER['HTTP_HOST']可以取得host資料,範例如下
執行起來會是下面狀況
會把IP或網址印出來,主機標頭注入就是把HOST改掉,測試方式要使用curl。
windows版請到這裡下載:https://curl.se/download.html
下載後解壓縮,進入curl.exe所在的資料夾,開啟終端機,輸入下面指令
3.如何防範主機標頭注入
這個問題在網路上找了很久,各家方法都有,但最簡單的是改.htaccess檔,加入這幾行:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^網址或IP [NC]
RewriteCond %{REQUEST_URI} !^/error [NC]
RewriteRule ^.(.*) - [L,F]
這時再用curl測試,跑出來的就是403了,解決。
留言
張貼留言