網站被sql注入的修復方法

sou6發表於2016-08-09

近日,網站頻頻被黑。在網站裡莫名其妙的多出一篇文 章,還有多出一組貼圖。正在納悶是誰可以登陸我的後臺發表文章和圖片的時候,我的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隱碼攻擊式攻擊

相關文章