且听疯吟 在此记录扯淡的青春
恶心的运营商劫持

最近上网总是有点踩到狗屎的感觉。
比如,打开百度,页面总是要不停的刷新几次,然后加上联盟链接,例如 www.baidu.com/s?wd=test&tn=SE_pshl0065_bassux8m
打开购物网站,最后总要带上烦人的返利链接,例如 www.amazon.cn/?tag=eqifa5307-23&ascsubtag=704747|1|
打开页面还总会跳到一个其他网站,例如 bj.xdf.cn/bj_static/kecheng/shujiaban/?utm_source=display&utm_medium=dianxin&utm_content=250*250&utm_campaign=1_shujiaban

虽然十有八九是 ISP 干的,但还是要讲证据。开个虚拟机,排除软件、扩展、脚本之类的影响,开个 Fiddler 看看,以访问 Amazon 为例:
amazon
访问 amazon.cn 得到的返回明显有问题:

<html>
    <head>
        <style type="text/css">
            html,frameset{margin:0px;width:100%;height:100%;}
        </style>
    </head>
    <frameset rows="*">
            <frame src="http://zgshihu.com/z/z_sz.php" name="fb" frameborder="0">
    </frameset>
</html>

frame 加载 http://zgshihu.com/z/z_sz.php ,请求返回的内容为:

<div style="display:none">
<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_5724872'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s9.cnzz.com/stat.php%3Fid%3D5724872' type='text/javascript'%3E%3C/script%3E"));</script>
</div>
<script type="text/javascript">    parent.location.href="http://www.amazon.cn?tag=eqifa5307-23&ascsubtag=704747|1|";
</script>

然后才会真正加载 amazon.cn 并带上一串讨人厌的返利尾巴。尼玛劫持还要带个 cnzz 统计是要算 KPI 还是做大数据啊!!!

看来很明显是 ISP 万年不换但是却很有效的 TCP 劫持了。一般 ISP 劫持的时候不会去处理 TTL ,一看 Wireshark 抓包的数据,果然 Identification 和 TTL 有异常。理论上可以根据 TTL 来追踪到哪一点出了问题,也许可以作为 ISP 劫持的证据吧。

对于链路层的劫持本地也没什么办法,只能将对应的跳转域名加入到 hosts 屏蔽,只要不看到恶心的尾巴也好(后果可能是被劫持时页面空白需要手动刷新):

127.0.0.1 zgshihu.com

当然这些都是治标不治本,最好的办法还是去工信部投诉 www.chinatcc.gov.cn:8080/cmsadmin/shouli/shensu.jsp 。找 ISP 投诉也是浪费时间,基本不会有结果。
btw,工信部这个网站的存在真的很神奇,一方面让极少数能够察觉到自己被劫持的用户有疏导的地方,另一方面又对受到大量投诉的 ISP 们坐视不理。这种默契的「潜规则」真是被某国的官老爷们用到极致了。

记得某大公司发现网站被劫持,追查发现是运行商干的,结果运营商不承认,最后还是毫无办法。
尽管看起来只是一个广告,一个弹窗,但是网站运营方的努力,为用户体验投入的成本就等于打了水漂。
大概也只有在某国才有这种奇葩的公司了,借着垄断地位,钱也捞了,还背地里龌龊地干着恶心人的事。

  • posted on 2014-05-11 00:00
  • life