近日,網站頻頻被黑。在網站裡莫名其妙的多出一篇文 章,還有多出一組貼圖。正在納悶是誰可以登陸我的後臺發表文章和圖片的時候,我的qq彈出訊息,一個陌生人給我發訊息,說我的網站有漏洞,還說是他弄了我 的網站。不過還好,他給我詳細說了黑我網站的方法,還提醒我好好修補修補,不然會被別人黑的。從他那得知,他用的是“啊D注入工具”,先找我的網站是否存 在可注入點,如果有,進行注入,能夠破解得到後臺密碼。
當晚我把那個“啊D注入工具”下載下來研究,知道了他注入的原理,對網頁進行了一些修改,但是用工具一查,還是存在注入點。小蝦無能,只好上網搜尋,找到了如下的方法,按如下修改後,再用“啊D注入工具”檢測,果然不存在注入點了。
下面是修補方法:
用工具檢測到網站存在SQL隱碼攻擊點,那麼如何進行修補呢?
1.新建一個asp檔案,寫入以下程式碼,儲存檔名為checkSQL.asp。
<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
''''---定義部份 頭------
Fy_Cl = 3 ''''處理方式:1=提示資訊,2=轉向頁面,3=先提示再轉向
Fy_Zx = "[color=Red]輸入你的網頁地址[/color]" ''''出錯時轉向的頁面
''''---定義部份 尾------
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"''''")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
Case "1"
Response.Write ""
Case "2"
Response.Write ""
Case "3"
Response.Write ""
End Select
Response.End
End If
End If
Next
%>
然後把此檔案放到網站目錄上去,然後在被發現有注入點的檔案裡,找到以下程式碼,
注意,“***.***”為連線的檔案,找到相關類似的程式碼即可,然後在後面新增一句
要注意checkSQL.asp所放在的路徑,對應修改。完成後再用工具後在掃一次,確定不在被發現SQL隱碼攻擊點後,問題解決。
知識補充:所謂SQL隱碼攻擊,就是透過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令,比如先前的很多影視網站洩露VIP會員密碼大多就是透過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL隱碼攻擊式攻擊