檢測Apache阻斷式服務漏洞&簡易處理方案
線上檢測
檢測網址:http://apache-range-exploit.com/首先我們可以透過以上網址進行檢測,將自己的網址填入Find的右側欄位,之後點選下方的Submit按鈕開始檢測。 若是有風險Vulnerable的欄位則會顯示紅色的YES,若是沒有的話也可以再透過以下的php程式自行檢測一下。
php檢測
[code]function check_for_exploit($host,$port=80,$timeout=10){$range = '0-1';
for($i=0;$i<20;$i++){
$range .= ",5-$i";
}$error_code = null;
$error = null;$socket = fsockopen($host,$port,$error_code,$error,$timeout);
$packet = "HEAD / HTTP/1.1\r\nHost: $host\r\nRange:bytes=$range\r\nAccept-Encoding: gzip\r\nConnection: close\r\n\r\n";
fwrite($socket,$packet);
$result = fread($socket,2048);
//check to see if "Partial" is in the response
if(strstr($result,"Partial") !== false){
return true;
}
return false;
}[/code]
簡易處理方法
- 利用mod_rewrite模組修復,在網站的.htaccess檔案內加入
[code]RewriteEngine on
RewriteCond %{HTTP:range} !(^bytes=[^,]+(,[^,]+){0,4}$^$)
RewriteRule .* - [F][/code] - 利用setenvif_module模組修復,在網站的.htaccess檔案內加入
[code]SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
# optional logging, uncomment and set path to log matches
# CustomLog /var/log/range-CVE-2011-3192.log common env=bad-range[/code] - 利用headers_module模組修復,在網站的.htaccess檔案內加入
[code]RequestHeader unset Range[/code]