网站运营
位置:首页>> 网站运营>> [asp]数据库被挂马的ASP处理方法

[asp]数据库被挂马的ASP处理方法

作者:红心男孩 来源:蓝色理想 发布时间:2009-03-09 13:00:00 

标签:木马,挂马,数据库,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

0
投稿

猜你喜欢

  • 11月3日,巨人网络耗时一年半时间倾心打造的第一款网页游戏《黄金国度》正式开启封测。《黄金国度》以多项创新技术大幅改善画面效果和游戏体验,同
  • perl是一种功能非常强大的脚本语言。主要用于文本的处理,程序员还可以通过perl脚本使用系统调用。如果程序编写的不好,就会为攻击者闯入服务
  • 随着首届派代电子商务年会的成功举办,不论是传统行业还是互联网行业,目光都集中在了如何来分享&ldquo;电子商务&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)安全,是非常基本的一个要求。
手机版 网站运营 asp之家 www.aspxhome.com