[asp]数据库被挂马的ASP处理方法
作者:红心男孩 来源:蓝色理想 发布时间:2009-03-09 13:00:00
数据库被挂马我相信很多人都碰到过。在这里,我讲下我处理的方法。
第一步:为现有数据库做好备份。
第二步:
执行如下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
猜你喜欢
- 11月3日,巨人网络耗时一年半时间倾心打造的第一款网页游戏《黄金国度》正式开启封测。《黄金国度》以多项创新技术大幅改善画面效果和游戏体验,同
- perl是一种功能非常强大的脚本语言。主要用于文本的处理,程序员还可以通过perl脚本使用系统调用。如果程序编写的不好,就会为攻击者闯入服务
- 随着首届派代电子商务年会的成功举办,不论是传统行业还是互联网行业,目光都集中在了如何来分享“电子商务&rdquo
- 北京时间10月16日消息,据美国科技博客网站Silicon Alley Insider报道,一家美国市场研究公司周四表示,过去一段时间内,F
- 本修改经过多次测试在 大部分国外空间都安装正常。如果不会修改的,请下载我提供的dedecms5.1UTF-8英文版本 文章模块。已经修改好的
- 做网站联盟做久了,在管理联盟中,看到有些站长做广告,是拼命申请广告联盟,总是以为东边不亮西边亮,这个没钱赚那个有钱赚,其实这是很错误的,敬请
- 现在是个人主页风行的年代,只要上网,必定穿梭在网上人家的大街小巷之中。不可否认,这些网站当中优秀的比比皆是,但不值一提的网站也是屡见不鲜。显
- 经过一个月的测试,国内知名的网站内容管理系统帝国CMS6.6正式版本开源发布。据了解,6.6版本使超容量负载的系统构架各方面更加完善,并新增
- 现在互联网上的内容五花八门无奇不有。有时您发表了一些不该发表的内容——比如一气之下发了篇博文,事后却后悔不已;又如无意间泄露了保密数据等。大
- 国外站点网页访问速度慢,但下载速度令人非常满意,这到底是什么原因呢?至于美国站点访问慢就不用说了,但下载速度Blinux曾请人做过测试,速度
- 在许多公司中,email很快成为了重要的应用程序,不过邮件服务器必须连接Internet才能收发email。可能你也知道,Internet绝
- 一、什么是权重网站在seo中的重要性,权威性。SEO给一个网站的一种待遇。英文:Page Strrngth1. 权重不等于排名2. 权重对排
- 万众瞩目的Windows 7操作系统终于正式发布了,喜欢尝鲜的朋友想必已经开始在更新自己电脑的操作系统了吧!可只是安装好操作系统可不行,还得
- 大家都知道,根据我们之前的付款流程,当发布商的收入达到 $50 美元时,我们才会向发布商发送 PIN 码和启动电话确认。现在,我们对此流程进
- 当制作dedecms模板的head.htm时页面显示正常当制作index.htm模板时发现在index.htm输入中文时会出现乱码之前没有遇
- 概述Microsoft 的运营技术组(OTG)最近部署了 Microsoft Exchange Server 2003 - 该公司行业领先的
- DISCUZ论坛用的人很多,下面就教你怎么美化贴子里的Google AdSense 广告,先看看效果图:当然主要是模板的制作,看你自己的发挥
- DedeCMS Error Warning,这个问题我也出现过,有办法解决,但能不能行得通还是个问题,如果你是独立服务器可以使用以下两个方法
- 一、这里太专业,你插不上嘴?答:没你想象的那么专业。我学中文的,洪波也是学中文的,我们都能如鱼得水,你一定也行。陈一舟学物理的,我在武汉问他
- 确保Windows Server 2003域上的域名解析系统(domain name system,简称DNS)安全,是非常基本的一个要求。