使用 Dnsmasq 绕过上海电信的广告劫持 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aveline
V2EX    宽带症候群

使用 Dnsmasq 绕过上海电信的广告劫持

  •  3
     
  •   aveline 2015-01-25 01:48:06 +08:00 12457 次点击
    这是一个创建于 3913 天前的主题,其中的信息可能已经有所发展或是发生改变。

    晚上头疼起来买止痛药 ... 然后发现又特么被电信劫持了,不能忍!

    但是 HTTP 劫持基本上没办法对付,那就只能从广告页下手了。

    分析

    广告联盟

    根据观察,上海电信访问京东、一号店、淘宝、天猫等,不管劫持到哪个页面,后面均会二次跳转到 click.linktech.cn,那么很好办嘛我把 click.linktech.cn 劫持掉好啦~

    例: http://hao.xfect.cn/js/yhd02.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <body> <script type="text/Javascript"> var dstSrc="http://click.linktech.cn/?m=yihaodian&a=A100200985&l=99999&l_cd1=0&l_cd2=1&tu=http%3A%2F%2Fwww.yhd.com%2F"; window.top.location=dstSrc; </script> </body> </html> 

    要直接跳回原站就可以这么写:

    <script> window.location.search.split('&').forEach(function (param) { param = param.split('='); if(param[0] == 'tu') { window.top.location.replace(decodeURIComponent(param[1])); } }); </script> 

    右下角小广告

    例: http://tv.sohu.com/

    <html><head><meta http-equiv="Content-Type" cOntent="text/html; charset="><script defer="" type="text/Javascript" src="http://websystem.b0.upaiyun.com/th/sh0101/ver_sh0101_354/th1052.js"></script><script type="text/Javascript" src="http://websystem.b0.upaiyun.com/fc/sh0101/js/jquery-1.8.3.min.js"></script><link rel="stylesheet" type="text/css" href="http://websystem.b0.upaiyun.com/fc/sh0101/css/adStyle.css"><title>搜狐视频-搜狐</title></head><body style="margin: 0px; overflow: hidden; zoom: 1;"><div class="ad-dialog ad_ style0" id="ad_id" style="right: 20px; bottom: 2px; display: block;"><div class="title tt_" style="display: none; width: 160px;">这是广告</div><div class="close"><a class="icon-close close_"><span id="cl"><font color="white">关闭</font></span></a></div><div class="repeate"><a id="repeate" class="repeate_"><span id="re"><font color="white">重播</font></span></a></div><div class="content ct_"><iframe scrolling="no" frameborder="no" src="http://a.letter.com.cn/suzhouad/ad9.html?_us=&amp;_su=aHR0cDovL3R2LnNvaHUuY29tLw==" allowtransparency="true" id="adframe" style="top: 0px; width: 160px; height: 0px; display: none; opacity: 1;"></iframe><iframe scrolling="no" frameborder="no" src="http://a.letter.com.cn/suzhouad/ad10.html" allowtransparency="true" id="adframe1" style="top: 528px; width: 160px; height: 150px;"></iframe></div></div><iframe id="imain" src="http://tv.sohu.com/" scrolling="auto" width="100%" height="100%" frameborder="no" Onload="" style="position:fixed;"></iframe><style class="ublock-postload-1ae7a5f130fc79b4fdb8a4272d9426b5">#adframe:not(frameset) {display:none !important;}</style></body></html> 

    这边由于 CORS 的原因不能直接获得 parent 的 URL,不过我们可以用 referrer 获取,很简单,改写成这样子就可以了:

    <script> parent.location.replace(document.referrer); </script> 

    方法

    嗯方法很简单啦,就是在本地的 dnsmasq 里插入这么几条配置:

    address=/click.linktech.cn/10.21.0.53 address=/cdn.shdsp.net/10.21.0.53 address=/a.letter.com.cn/10.21.0.53 

    其中的 10.21.0.53 是我内网 Linux 服务器的 IP 地址,上面需要安装一下 nginx 或者其他你喜欢的 Web server。

    以 nginx 为例,新增配置文件 /etc/nginx/sites-available/hijack.conf

    server { server_name a.letter.com.cn cdn.shdsp.net 58.215.179.159; root /var/www/anti-hijack; index dsp.html; location / { try_files $uri $uri/ /dsp.html$is_args$args; } } server { server_name click.linktech.cn; root /var/www/anti-hijack; index linktech.html; location / { try_files $uri $uri/ /linktech.html$is_args$args; } } 

    然后重载配置

    ln -s /etc/nginx/sites-available/hijack.conf /etc/nginx/sites-enabled/hijack.conf nginx -s reload 

    嗯,能不看那些讨厌的广告和推广链接了。
    另外如果本地没有 Web 服务器可以使用我的 173.234.150.185,不过由于要走公网谁知道电信会不会再来劫持一遍 ...

    另外如果本地也没有 DNS 的话可以用我的 180.153.42.157180.153.47.32,不过 ... 我也不能保证我的 DNS 结果不会被二次劫持,电信的节操呵呵呵

    以及投诉什么的我也试过了,工信部表示不受理,电信表示不是他们的 IP 不能屏蔽。
    不过鬼才信。

    第 1 条附言    2015-01-25 02:37:36 +08:00
    39 条回复    2015-11-21 20:18:22 +08:00
    mongodb
        1
    mongodb  
       2015-01-25 01:51:10 +08:00
    这方法虽然能治理。。但仍然觉得不爽。。
    这帮王八蛋用这方法,虽然严格来说我也没多大损失什么的(他们的frame页面所在的机器倒是可能太卡以至于我网站打开都卡),但仍然觉得不舒服。。
    我甚至可以接受他们事先明说了。。但这种当我是sb利用我的流量谋利仍然让我十分十分十分十分不高兴。
    求反制。
    Dreista
        2
    Dreista  
       2015-01-25 02:40:24 +08:00
    电信一劫持我就忍不住想要D…
    esile
        3
    esile  
       2015-01-25 02:54:42 +08:00
    @aveline 刚发完就发现lz了
    /t/165183
    Do
        4
    Do  
       2015-01-25 03:09:53 +08:00 via iPhone
    不知道有没有可能是有人利用电信的服务器干这种事情。干这勾当的当然不是网站的ip,啥叫不是他们IP他们不管,电信这是主动抗投么=_=。

    国内的ISP乃典型流氓无赖。
    aveline
        5
    aveline  
    OP
       2015-01-25 03:22:22 +08:00
    @Do 就是投放广告用的 IP 不是上海电信的,以及广告内容也不是直接和电信有关的。
    aveline
        6
    aveline  
    OP
       2015-01-25 03:35:49 +08:00
    电信这学的也太快了吧还是我之前没发现 ... 有直接跳的了

    <iframe id="i" src="http://www.baidu.com/?tn=95901816_hao_pg" scrolling="auto" width="100%" height="100%" frameborder="no" Onload="" style="position:fixed;"></iframe>
    lm902
        7
    lm902  
       2015-01-25 06:47:48 +08:00
    能用HTTPS的例如https://www.baidu.com直连 其它的挂国内SS 阿里云应该没有劫持
    usbaby
        8
    usbaby  
       2015-01-25 06:58:49 +08:00 via Android
    遇到的情况和你一样,工信部不管这个么?
    20140930
        10
    20140930  
       2015-01-25 07:26:56 +08:00
    一号店的佣金最高吧,我这里不管移动还是电信都有很高的几率劫持一号店
    ajan
        11
    ajan  
       2015-01-25 09:40:00 +08:00   1
    @aveline 上海电信 打开百度加 ?tn=****** 尾巴事情忍了很久了, 可以使用https://www.baidu.com
    Chrome 可以打开 chrome://net-internals/#hsts 添加 baidu.com 保存, 以后可以自动切换到https 上了
    liceven
        12
    liceven  
       2015-01-25 10:00:07 +08:00
    @ajan 广东启用https都没有用 有时候点连接还是会跳到 ?tn=******
    402645707
        13
    402645707  
       2015-01-25 10:21:21 +08:00 via Android
    有这么麻烦吗,抓icmp包屏蔽发劫持包的ip
    zro
        14
    zro  
       2015-01-25 11:41:00 +08:00
    不知道有没有方法可以这样,劫持一次就DDOS一次/多次它?XD
    Elethom
        15
    Elethom  
       2015-01-25 11:50:21 +08:00 via iPhone   1
    除了在工信部投信需要在哪投一次工信部著, 忘是哪了. 著投就可以了, 原因 "不予受理, 度劣".
    Do
        16
    Do  
       2015-01-25 12:13:49 +08:00
    @aveline 发现现在上海电信劫持的话与时俱进了,src 和ttl都伪造了。
    guoyijun63
        17
    guoyijun163  
       2015-01-25 21:19:23 +08:00
    上海电信的劫持包你可以用iptables的u32模块……屏蔽HTTP响应中日期为20XX年的包……(这是特征)

    另:工信部投诉是有用的,电信没回访,但是实际是去掉了
    guoyijun163
        18
    guoyijun163  
       2015-01-25 21:20:26 +08:00
    @Do 但是HTTP响应包中的年份是不合理的……可以以这个屏蔽重定向
    hyraxer
        19
    hyraxer  
       2015-01-26 03:20:02 +08:00 via iPhone
    楼主好思路 我打算在路由器中专门反劫持一下
    Do
        20
    Do  
       2015-01-26 10:42:05 +08:00
    @guoyijun163 你那里现在没这个现象了?
    guoyijun163
        21
    guoyijun163  
       2015-01-26 12:28:47 +08:00 via Android
    @Do 嗯,投诉来来回回几次一直不解决问题,上工信部投了下就默默取消了。。。之前已经在一个低级白名单里,投诉给电信总说我已经在白名单,看来还有个高级白名单
    lzk800
        22
    lzk800  
       2015-01-27 15:53:45 +08:00
    @aveline 我这几天发现劫持动作没了,可能是上海电信取消了这些劫持……
    aveline
        23
    aveline  
    OP
       2015-01-27 16:24:01 +08:00
    @lzk800 还是有的,这是今天反劫持访问记录 ...

    https://gist.github.com/ym/a926694f352f400b472c
    lzk800
        24
    lzk800  
       2015-01-27 16:25:31 +08:00
    @aveline 哦,好吧,反正今天京东是没有了,百度我是不用的
    xhsmile
        25
    xhsmile  
       2015-01-27 16:50:16 +08:00
    @rwzsycwan 请问怎个跳转是怎么发现的?F12?
    recall704
        26
    recall704  
       2015-01-27 19:14:34 +08:00
    我已经到非挂代理不可的地步了
    rwzsycwan
        27
    rwzsycwan  
       2015-01-27 19:19:08 +08:00
    @xhsmile 额 直接打开www.jd.com会自己跳转
    xhsmile
        28
    xhsmile  
       2015-01-27 19:32:57 +08:00
    @rwzsycwan 转的太快……根本停不下来……
    xmi
        29
    xmi  
       2015-02-11 12:43:35 +08:00
    @liceven 对,我这里广州长宽,https也会跟上tn .. 真的好恶心
    lilydjwg
        30
    lilydjwg  
       2015-02-12 13:37:46 +08:00
    支持投诉!我曾经在QQ上找武汉电信投诉,然后广告就没有了。
    smovie
        31
    smovie  
       2015-04-09 01:36:45 +08:00
    firefox+noscript可以看到劫持
    vjnjc
        32
    vjnjc  
       2015-05-19 22:18:53 +08:00
    然而最近的结果表示上海电信已经开始加iframe.src=s.shdsp.net
    aveline
        33
    aveline  
    OP
       2015-05-19 22:31:59 +08:00
    @vjnjc Hi, 麻烦提供一下被劫持页面的 HTML,我来过滤一下
    vjnjc
        34
    vjnjc  
       2015-05-19 22:40:39 +08:00
    @aveline Hi,我现在又点不出那个广告了,下次遇到了一定贴在这里。
    lguan
        35
    lguan  
       2015-06-14 22:54:01 +08:00
    楼主你还有碰到这个问题吗?我最近也被这事情烦恼着,工信部投诉了好几次了,我其实几年前就开始投诉了,每次都能解决,现在干脆他们就不认账了,说我已经在他们的投放白名单里面了,说现在这个广告不是他们投放的,我继续在工信部疯狂投诉中,估计也是解决不了,我也抓了不少图,大部分都是shdsp.net的
    aveline
        36
    aveline  
    OP
       2015-06-14 23:00:09 +08:00
    @lguan 还在遇到,回复也一样,工信部投诉也不管。
    lguan
        37
    lguan  
       2015-06-14 23:22:13 +08:00
    @aveline 难道就没有办法了么,这tmd已经是明目张胆了,搞个站点捅出去?
    hauy
        38
    hauy  
       2015-11-17 12:05:06 +08:00
    电信太 tmd 无耻了
    meteor
        39
    meteor  
       2015-11-21 20:18:22 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2721 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:09 PVG 20:09 LAX 05:09 JFK 08:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86