數據庫被掛馬我相信很多人都碰到過在這裡我講下我處理的方法
第一步為現有數據庫做好備份
第二步執行如下ASP文件這樣就可以去掉數據庫當中的JS木馬
注connasp自己去寫了
這裡放入JS木馬內容請記得改為自己數據庫中的JS木馬內容
<!#include file="connasp">
<%
ServerScriptTimeOut= Set rstSchema = connOpenSchema()
k=
Do Until rstSchemaEOF 遍歷數據庫表
If rstSchema("TABLE_TYPE")="TABLE" Then
responsewrite K&"<font color=red><b>"&rstSchema("TABLE_NAME") & "</b></font>:" 顯示表名Set rs=ServerCreateObject("ADODBRecordset")
sql="select * from [" & rstSchema("TABLE_NAME")&"]"
rsopen sqlconn For i= to rsfieldscount 遍歷表中字段If int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= or int(rs(i)Type)= Then只處理字段類型為字符型的字段
connexecute("update ["&rstSchema("TABLE_NAME")&"] set "&rs(i)name&" =replace(cast("&rs(i)name&" as varchar())這裡放入JS木馬內容)") responsewrite rs(i)name &" "&rs(i)Type &" "顯示執行過的字段名
End If
Next
responsewrite "<br>"
End If
rstSchemaMoveNext
k=k+
Loop
responseWrite "執行成功"
%>
如果數據庫表很多的話上面的遍歷數據庫結構未執行完就被IIS給停止了在這時候可以在
If rstSchema("TABLE_TYPE")="TABLE" Then
當中適當加入k值的范圍如
If rstSchema("TABLE_TYPE")="TABLE" k> and k< Then
這樣的話就一次只操作個表
第三步
根據數據庫JS注入的特性(會包括<script</script>和http://這樣的字符)在connasp裡面放入如下代碼
Function Cheack_Sqljs()防止數據庫外鏈JS注入:true為發現外鏈JS注入
Dim F_PostF_Get
Cheack_Sqljs=False
If RequestForm<>"" Then表單提交時的檢測For Each F_Post In RequestForm If (Instr(LCase(RequestForm(F_Post))"<script")<> or Instr(LCase(RequestForm(F_Post))"</script>")<>) and Instr(LCase(RequestForm(F_Post))"http://")<> Then
Cheack_Sqljs=True
Exit For
End If
Next
End If
If RequestQueryString<>"" ThenQueryString提交時的檢測For Each F_Get In RequestQueryString If (Instr(LCase(RequestForm(F_Get))"<script")<> or Instr(LCase(RequestForm(F_Get))"</script>")<>) and Instr(LCase(RequestForm(F_Get))"http://")<> Then
Cheack_Sqljs=True
Exit For
End If
Next
End If
End Function
Function CheckDataFrom()檢查提交數據來源True為數據從站外提交過來的
CheckDataFrom=True
server_v=Cstr(RequestServerVariables("HTTP_REFERER")) server_v=Cstr(RequestServerVariables("SERVER_NAME")) if mid(server_vlen(server_v))<>server_v then
CheckDataFrom=False
end if
End Function
If Cheack_Sqljs or CheckDataFrom Then
ResponseWrite "<Script Language=JavaScript>alert(禁止執行非法操作);</Script>" ResponseEnd()
End If
From:http://tw.wingwit.com/Article/program/net/201311/14256.html