saber 酱的抱枕

Fly me to the moon

10/26
2017
学习

CNZZ统计代码被劫持挂马了

刚才我给网站添加了定时换头像的功能,改完后查看控制台时却发现有两个报错,说是有两个js脚本以http方式加载,因此被阻止了。(体现出了https的好处X2)

CNZZ统计代码被人挂马了

这就奇怪了,明明几分钟前控制台还没有任何报错的。

这俩脚本一个是陌生网站的,“www.taolecun.com/dx.js?advert=87”,这个玩意一看就是恶意代码。第二个是cnzz的。

恶意代码是通过被劫持的cnzz的core.php加载的,它返回的代码里有个loadjs函数,加载了恶意代码:

CNZZ统计代码被人挂马了

这说明cnzz的代码被劫持并修改了。

既然问题出在cnzz加载的代码里,那么有两个办法解决这个问题:

1.注释掉cnzz统计代码,这样恶意代码也不会通过cnzz加载了。等正常了再回复cnzz的代码。

2.cnzz统计代码默认会根据站点来判断它自己需要走http协议还是https协议:

var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");

按理说正常情况下它应该采用我网站的https协议的,但是刚才被劫持的时候可以看到cnzz的代码也是走的http协议。原因我不清楚,不过也不必追究原因。我们直接把cnzz的这个判断写死,固定成https,也可以解决这个问题。

其实就算自己的网站是http的,也可以正常加载https脚本,所以推荐让cnzz固定走https。


题外话:

打开这次恶意代码的url,发现它试图运行一大段js脚本:

CNZZ统计代码被人挂马了

里面有很多\x开头的,其实都是编码过的字符,可以通过解码还原成正常的字符。之后就可以分析它的源码了。但是我还原之后看了看代码量还挺不少,还做了混淆,就没再研究它了。不过我解码出了一些有意思的字符,比如"每天80万张淘宝%1v门槛现金券手慢%1v.com/?c=%1xYCRe0UnQHMG%1x“,这玩意算淘宝返利链接之类还是怎么回事?

这次的恶意代码是通过cnzz加载的,比较好发现和处理。如果木马是注入到服务器的文件里了,可以在网站的html、js、php等类型的文件里搜索恶意代码并全部清除。之后加强网站和服务器安全措施,以观后效。

ps2:我刚才又看了下,发现cnzz在网站底部生成的“站长统计”的链接始终是http的。虽然超链接不会对当前页面产生影响,只会在点击的时候才加载内容,不过cnzz作为用户众多的大站还是全部升级到https比较好。

CNZZ统计代码被人挂马了

(上面已经固定https了,但底下的超链接还是http的)

CNZZ统计代码被劫持挂马了