最近發現很多同仁對我的網站比較青睞,同事幫我分析網站log時,驚訝的發現:2M的log居然有將近1M都是測試我網站的安全性的,其中至少0.5M的log來自WVS。 Acunetix Web Vulnerability Scanner 是一款國外產的及其優秀的掃描工具,可以幫忙挖掘網站內的諸多漏洞,包括常見的SQLinjection,XSS(很多自認為牛人的就喜歡用WVS掃站發現XSS就公佈說是他發現的...)。既然WVS這麼牛,那咱們就不給他訪問網站的機會,像堵SQL注入一樣來堵住它。
分析了一下WVS掃描時候的頭文件,基本上都包含它網站的英文名稱:acunetix,於是我們從這個名稱下手了。以下是三個版本的程式碼:
1.ASP(JScript)版,對於LBS的用戶,可以用這個(新增或包含到_common.asp檔裡):
複製代碼代碼如下:
<%
var StopScan=== WVS PLS GO AWAY! BY oldjun! ==;
var requestServer=String(Request.ServerVariables(All_Raw)).toLowerCase();
if(Session(stopscan)==1){
Response.Write(StopScan);
Response.End;
}
if(requestServer.indexOf(acunetix)>0){
Response.Write(StopScan);
Session(stopscan)=1;
Response.End;
}
%>
2.ASP(VBscript)版,一般的asp用戶可以用這個,包含到conn.asp即可:
複製代碼代碼如下:
<%
Dim StopScan,RequestServer
StopScan=== WVS PLS GO AWAY! BY oldjun! ==
RequestServer=Lcase(Request.ServerVariables(All_Raw))
If Session(stopscan)=1 Then
Response.Write(StopScan)
Response.End
End If
If instr(RequestServer,acunetix) Then
Response.Write(StopScan)
Session(stopscan)=1
Response.End
End If
%>
3.PHP版:
複製代碼代碼如下:
<?php
$http=$_SERVER[ALL_HTTP];
If(isset($_COOKIE[StopScan]) && $_COOKIE[StopScan]){
die(== WVS PLS GO AWAY!BY oldjun! ==);
}
If(strpos(strtolower($http),acunetix)){
setcookie(StopScan, 1);
die(== WVS PLS GO AWAY!BY oldjun! ==);
}
?>
程式碼很簡單,本文只是提供個思路,對於一般的WVS掃描均可以攔截,如果頭部資訊可以自己定義或遇到zwell的JSKY,大家找最匹配的即可~~~From oldjun