查看: 1067|回复: 0

批量删除sql中被注入地恶意代码

[复制链接]
发表于 2009-5-7 02:03:36 | 显示全部楼层 |阅读模式
.CNIDC.COM
<br />
<br />1,如果你的数据表很少的话,那么写几条简单的sql就搞定了
<br />
<br />对于表中的nvchar类型的字段:
<br />
<br />
<br />
<br />以下为引用的内容:
<br />
<br />update news set title=replace(title,&#39;【恶意代码】&#39;,&#39;&#39;)
<br />
<br />对于表中的text类型的字段:
<br />
<br />
<br />
<br />以下为引用的内容:
<br />
<br />update news set content=Replace(Cast(content as varchar(8000)),&#39;【恶意代码】&#39;,&#39;&#39;)
<br />
<br />2,如果你是sql2000的话,可以用下面这个。
<br />
<br />
<br />
<br />以下为引用的内容:
<br />
<br />DECLARE @fieldtype sysname
<br />
<br />SET @fieldtype=&#39;varchar&#39;
<br />
<br />--删除处理
<br />
<br />DECLARE hCForEach CURSOR GLOBAL
<br />
<br />FOR
<br />
<br />SELECT N&#39;update &#39;+QUOTENAME(o.name)
<br />
<br />    +N&#39; set  &#39;+ QUOTENAME(c.name) + N&#39; = replace(&#39; + QUOTENAME(c.name) + &#39;,&#39;&#39;【恶意代码】&#39;&#39;,&#39;&#39;&#39;&#39;)&#39;
<br />
<br />FROM sysobjects o,syscolumns c,systypes t
<br />
<br />WHERE o.id=c.id  
<br />
<br />    AND OBJECTPROPERTY(o.id,N&#39;IsUserTable&#39;)=1
<br />
<br />    AND c.xusertype=t.xusertype
<br />
<br />    AND t.name=@fieldtype
<br />
<br />EXEC sp_MSforeach_Worker @command1=N&#39;?&#39;

<br />
<br />(这个是我网上搜索的,据说sql2000下可以,但我没试过,在sql2005下无法执行。)
<br />
<br />3,sql2005下我选择的方法是先生成清理代码的语句,然后把运行结果复制到查询分析器里执行之,当然在sql2000下一样可以用。
<br />
<br />
<br />
<br />以下为引用的内容:
<br />
<br />select
<br />
<br />&#39;update [&#39;+s.name + &#39;]  set [&#39;+c.name+&#39;]=&#39; +&#39;replace([&#39;+c.name+&#39;],&#39;&#39;【恶意代码】&#39;&#39;,&#39;&#39;&#39;&#39;)&#39;
<br />
<br />from sysobjects s,syscolumns c,systypes t
<br />
<br />where  s.type=&#39;u&#39; and s.id=c.id  
<br />
<br />   AND OBJECTPROPERTY(s.id,N&#39;IsUserTable&#39;)=1
<br />
<br />    AND c.xusertype=t.xusertype
<br />
<br />    AND t.name IN(&#39;varchar&#39;,&#39;nvarchar&#39;,&#39;char&#39;,&#39;nchar&#39;)
<br />
<br />union
<br />
<br />select
<br />
<br />&#39;update [&#39;+s.name + &#39;]  set [&#39;+c.name+&#39;]=&#39; +&#39;replace(Cast([&#39;+c.name+&#39;] as varchar(8000)),&#39;&#39;【恶意代码】&#39;&#39;,&#39;&#39;&#39;&#39;)&#39;
<br />
<br />from sysobjects s,syscolumns c,systypes t
<br />
<br />where  s.type=&#39;u&#39; and s.id=c.id  
<br />
<br />   AND OBJECTPROPERTY(s.id,N&#39;IsUserTable&#39;)=1
<br />
<br />    AND c.xusertype=t.xusertype
<br />
<br />    AND t.name IN(&#39;text&#39;,&#39;ntext&#39;)

<br />
<br />ps:以上是buzhizhe在处理问题时候整理的,方法1、2是网上搜索的,对于我的sql2005无用,因此写了方法3,以便帮助不懂安全的菜鸟临时解决问题。
<br />
<br /><br /><br /><blockquote class="blockquote">From: http://www.66yh.cn/read.php?tid-3291.html  Powered by PHPWind.com</blockquote>
回复

使用道具 举报

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
QQ客服返回顶部