数据库被挂马我相信很多人都碰到过在这里我讲下我处理的方法
第一步为现有数据库做好备份
第二步执行如下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