网络编程

您的位置:首页 > 网站专题 > 网络编程 > 详细内容

成功解决了ASP MSSQL2000,数据库被批量注入了<script

2011-05-06 13:23 作者:admin [ ]

从08年3月份开始,采用ASP MSSQL设计的很多网站遭碰到sql数值库被挂马或者插入JS木马的履历;此病毒的首要症状为mssql的每1个varchar、text字段都被自动插入一段js代码,例如:。即使删除这段代码,使用查询阐发器在数值库中替换掉这些个代码,如果没有从源头上处理完成,几分钟后,js代码就又会自动插入数值库,而且我发现我的有些信息会丢失一半,更为可怕的是数值库被创建了几个歹意表。到目前我写这篇文章为止,互联网上被执入此JS木马的网站在baidu上搜索约有481万个站,在Google上搜索约有5210万个站,真是惊叹啊!

我们公司网站采用的是ASP Sqlserver2000设计的,08年11月份同样遭遇了这段苦不堪言的履历,但经过我一段时间的摸索,现在乐成处理完成了此病毒带来的困扰。经过摸索及网上查资料得知这很有可能是程序自动执行的,黑客先从搜索引擎google、baidu等搜索存在漏洞的采用asp mssql设计的网站,之后采用一些注入电子扫描工具,电子扫描整个网站,一旦发现存sql注入的漏洞或者上传漏洞,黑客就通过各种手段,上传自己的木马;之后黑客就把这个网站纳入他的肉鸡列表,随时在数值库里加入自己希望加的js代码,而这些个代码往往是包含着众多的的病毒、木马,只要访问受控网站,你的电脑就会中毒,轻者死机,重的需要重装系统,起初瑞星、360等防病毒软件都不能防住,害得我重装了几次系统,现在瑞星和360都可以及时阻止此病毒入侵你的电脑。

底下说下针对此病毒的处理完成方法:

第一种:sqlserver数值库更换为access数值库

此病毒只入侵使用sqlserver数值库的网站,如果你是个企业小站或者技术一般或者没时间花大量时间给你的网站打补丁,都建议你直接把sqlserver数值库替换为access数值库就OK。我客户的1个小站,前段时间中了相同病毒,我直接替换为access数值库此问题处理完成了!

第二种:在sqlserver数值库的sql查询阐发器里可以执行以下的代码批量替换js代码即传说中的批量修改数值库:

update 表名 set 字段名=replace(字段名,’’,’’)”

虽然可以使用此方法执行批量代换,暂时处理完成被插入的js代码问题,几分钟就搞定了。然而不从根本上处理完成整个网站存在的漏洞,包括程序上和服务器安全权限,那么黑客还是随时可以入侵你的网站数值库,你几分钟替换掉,他也能几分钟内就再次入侵你的网站,疾苦啊!所以资种方法只建议那些暂时没时间处理完成网站病毒的程序员们使用!

第三种:修补漏洞,彻底处理完成病毒入侵

1.在sqlserver数值库的sql查询阐发器里可以执行以下的代码批量替换js代码:

例如:“

update 表名 set 字段名=replace(字段名,’’,’’)”

2.对上传后的文件内容进行验证,如果是图片木马,则删除;可以参考以下的验证代码:

’’===============判断上传文件是否含非法字符串start================

set MyFile = server.CreateObject("Scripting.FileSystemObject")

set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) ’读取文本文件

sTextAll = lcase(MyText.ReadAll)

MyText.关上

set MyFile = nothing

sStr="注入漏洞。由于网站当时设计中,为了考虑到减小服务器的开销,整站多处使用了cookies验证,这个cookies里生存了用户的 ID 和 NAME ,经我的推测,cookies是可能被黑客伪造了,;另外,我的整站都没有采用严格的 request.form 和 request.querystring 来获取内容,为了简便,采用了 request("id") 这样的方式,经查资料得知 如果这个 id 恰巧是通过cookies来获取值的,注入者可以轻松的伪造1个名为 id 的虚假 cookies ,因为这个 id 的cookies 是服务器分配给它的,现在才知道他的可怕性有多大啊!方法如次:

a:原来:SQL="select * from 表名 where id="