asp

位置:IT落伍者 >> asp >> 浏览文章

ASP数据库被挂马的编程处理方法


发布日期:2022年07月15日
 
ASP数据库被挂马的编程处理方法

数据库被挂马我相信很多人都碰到过在这里我讲下我处理的方法

第一步为现有数据库做好备份

第二步执行如下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


               

上一篇:asp入门学习心得精粹

下一篇:asp快速分页代码