[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
猜你喜欢
- 我们一直致力于为发布商提供充足的数据信息,从而让您更好地了解自己的网站运营和广告效果。现在我们很高兴地告诉大家,AdSense 帐户将会融入
- 本文简单介绍Ubuntu系统下SVN的搭建过程更新源sudo apt-get update安装SVNsudo apt-get install
- WordPress系统本身,默认安装的情况下使用默认模板,实际上对搜索引擎并不友好,并没有针对搜索引擎进行很好的设计,下面我介绍一些方法可以
- web服务器可以解析(handles)http协议。当web服务器接收到一个http请求(request),会返回一个http响应 (res
- 10月16日消息,据消息人士透露,网页游戏运营商51wan近日调开通新域名kaixin(http://kaixin.51wan.com/),
- 万众瞩目的Windows 7操作系统终于正式发布了,喜欢尝鲜的朋友想必已经开始在更新自己电脑的操作系统了吧!可只是安装好操作系统可不行,还得
- 今天遇到一个奇怪的网络问题,记录一下研究过程和一些配置情况,顺便学习一下 Linux 下网络环境配置。网络配置文件该文件配置网卡信息&nbs
- 搜索引擎流量占据网站流量很大一部份,为此,我们邀请了SEO知名人士“王通”给大家讲了一些SEO的基础知识.以下为王通老师今天下午培训全部记录
- 常在网上飘,哪能不挨刀?相信大家在浏览网页的时候都碰到过404、403之类的错误报告,不管为什么反正就是网页打不开了。其实这些都是服务器接到
- Mac使用Shell(终端)SSH连接远程服务器前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码1、首先打开终端,然后输入s
- 在互联网web1.0时代,常用的网络营销有:搜索引擎营销、电子邮件营销、即时通讯营销、BBS营销、病毒式营销;但随着互联网发展至web2.0
- 一、安装Docker1、安装依赖。yum -y install yum-utils device-mapper-persistent-dat
- 在Discuz!7.0中,有些站长在设置用户组时,可能不小心误删了其他用户组,这样会导致原本属于该用户组的用户无法正常访问论坛。下面笔者详细
- 什么是别名 在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁的输入某个很长命令或用法是不
- 现在国内提供支持ASP的免费空间越来越多了,对于ASP爱好者来说无疑是个好的势头,但是很多提供免费ASP空间的站点都没有对Fil
- linux下mnt目录的作用:mount 英文解释: 登上; 爬上; 攀登; 骑上; 乘上; 跨上 可直接理解为“挂
- 网页尽可能的快速加载对网站非常重要;用户希望快速的查看他们想要看的页面,假如你不能满足他们,他们就会另寻它处。在这篇文章中,你会看到五种为你
- 垃圾站的seo是很重要的,因为一般来说垃圾站的内容不存在回头客,这就要求最大限度的从搜索中截取流量,一般来说当你的日ip到了4000左右稳定
- 最近,我费了九牛二虎之力终于帮一个网友在西安取出了他在网站上挂Google Adsense所得的收入。因为他用的Google Adsense
- 随着互联网的发展,传统媒体(报纸、杂志)也陆续登上互联网的舞台。受制于传统媒体的用户群,传统的阅读习惯已根深蒂固,传统媒体的网络化是否还能抓