您当前的位置: 首页 > 网站编程 > ASP教程 > ASP网站数据库被挂木马的处理办法

ASP网站数据库被挂木马的处理办法

作者:guanchaofeng 来源:不详 发布时间: 2009-04-13 21:07 点击:
数据库被挂马我相信很多人都碰到过。在这里,我讲下我处理的方法。 相关文章:什么是电脑肉鸡?(新手应该知道) 第一步:为现有数据库做好备份。 第二步: 执行如下ASP文件,这样就可以去掉数据库当中的JS木马: 注:conn.asp自己去写了。 '这里放入JS木马内

ASP网站数据库被挂木马的处理办法

  数据库被挂马我相信很多人都碰到过。在这里,我讲下我处理的方法。
  
  相关文章:什么是电脑肉鸡?(新手应该知道)
  
  第一步:为现有数据库做好备份。
  
  第二步:
  
  执行如下ASP文件,这样就可以去掉数据库当中的JS木马:
  
  注:conn.asp自己去写了。
  
  '这里放入JS木马内容:请记得改为自己数据库中的JS木马内容。
  
  <!--#include file="conn.asp"-->
  
  <%
  
  Server.ScriptTimeOut=180
  
  Set rstSchema = conn.OpenSchema(20)
  
  k=1
  
  Do Until rstSchema.EOF '遍历数据库表
  
  If rstSchema("TABLE_TYPE")="TABLE" Then
  
  response.write K&".<font color=red><b>"&rstSchema("TABLE_NAME") & "</b></font>:" '显示表名
  
  Set rs=Server.CreateObject("ADODB.Recordset")
  
  sql="select * from [" & rstSchema("TABLE_NAME")&"]"
  
  rs.open sql,conn,1,3
  
  For i=0 to rs.fields.count-1 '遍历表中字段
  
  If int(rs(i).Type)=129 or int(rs(i).Type)=130 or int(rs(i).Type)=200 or int(rs(i).Type)=201 or int(rs(i).Type)=202 or int(rs(i).Type)=203 Then'只处理字段类型为字符型的字段
  
  conn.execute("update ["&rstSchema("TABLE_NAME")&"] set "&rs(i).name&" =replace(cast("&rs(i).name&" as varchar(8000)),'这里放入JS木马内容','')")
  
  response.write rs(i).name &" "&rs(i).Type &" "'显示执行过的字段名。
  
  End If
  
  Next
  
  response.write "<br>"
  
  End If
  
  rstSchema.MoveNext
  
  k=k+1
  
  Loop
  
  response.Write "执行成功"
  
  %>
  
  如果数据库表很多的话,上面的遍历数据库结构未执行完就被IIS给停止了。在这时候可以在
  
  If rstSchema("TABLE_TYPE")="TABLE" Then
  
  当中适当加入k值的范围,如:
  
  If rstSchema("TABLE_TYPE")="TABLE" k>10 and k<20 Then
  
  这样的话就一次只操作9个表。
  
  第三步:
  
  根据数据库JS注入的特性(会包括<script、</script>和http://这样的字符),
  
  在conn.asp里面放入如下代码:
  
  Function Cheack_Sqljs()'防止数据库外链JS注入:true为发现外链JS注入。
  
  Dim F_Post,F_Get
  
  Cheack_Sqljs=False
  
  If Request.Form<>"" Then'表单提交时的检测
  
  For Each F_Post In Request.Form
  
  If (Instr(LCase(Request.Form(F_Post)),"<script")<>0 or Instr(LCase(Request.Form(F_Post)),"</script>")<>0) and Instr(LCase(Request.Form(F_Post)),"http://")<>0 Then
  
  Cheack_Sqljs=True
  
  Exit For
  
  End If
  
  Next
  
  End If
  
  If Request.QueryString<>"" Then'QueryString提交时的检测
  
  For Each F_Get In Request.QueryString
  
  If (Instr(LCase(Request.Form(F_Get)),"<script")<>0 or Instr(LCase(Request.Form(F_Get)),"</script>")<>0) and Instr(LCase(Request.Form(F_Get)),"http://")<>0 Then
  
  Cheack_Sqljs=True
  
  Exit For
  
  End If
  
  Next
  
  End If
  
  End Function
  
  Function CheckDataFrom()'检查提交数据来源:True为数据从站外提交过来的
  
  CheckDataFrom=True
  
  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
  
  server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
  
  if mid(server_v1,8,len(server_v2))<>server_v2 then
  
  CheckDataFrom=False
  
  end if
  
  End Function
  
  If Cheack_Sqljs or CheckDataFrom Then
  
  Response.Write "<Script Language=javascript>alert('禁止执行,非法操作。');</Script>"
  
  Response.End()
  
  End If

分享到:
本文"ASP网站数据库被挂木马的处理办法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4