V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hilyjiang
V2EX  ›  宽带症候群

[福州电信] 又一例电信运营商劫持案例

  •  
  •   hilyjiang · 2017-07-24 13:27:13 +08:00 · 6335 次点击
    这是一个创建于 2461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近刚从联通切换为电信,就发现自己被劫持了!

    测试站点:1 号店、Godaddy

    以下是测试全程记录,使用各种浏览器( Chrome、Firefox、360 )、各种平台( Windows、MAC、Android、Linux )和模拟 HTTP 请求方式测试,均会较高概率地出现。

    == 1 号店 ==

    测试网址: http://www.yhd.com/?cp=0&cityId=1

    HTTP/1.1 200 OK
    Cache-control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0
    Expires: 0
    Connection: close
    Content-Type: text/html;charset=UTF-8
    Set-Cookie: BAIDUID=qq1234; expires=Mon, 24 Jul 2017 05:27:22 GMT; domain=.yhd.com; path=/
    Content-Length: 3108
    Server: 4ebdfc71391588be740e70a857447eea##300000196##8BDB4F0FB4082CC229CB35414274E1A276019507261825A4378835F87CDD57B1C3C4204FAC1FD51317662096482F01B0B47AF4111E0C561870AC79CF4288CC4B8F8035EEB0E3D16D
    Date: Mon, 24 Jul 2017 05:25:22 GMT
    
    <!DOCTYPE HTML><html><head><title></title><style type="text/css">*{margin:0;padding:0;border:0}body{margin:0;color:#000;overflow:hidden;padding:0;width:100%;height:100%;font-family:Arial}a{cursor:pointer;display:block;position:absolute;border:0px;border-radius:16px;background-color:#444;color:#fff;opacity:.8;z-index:3;right:5px;top:5px;height:16px;overflow:hidden;text-align:center;width:16px;font-size:16px;line-height:14px}#x{position:fixed;z-index:2;bottom:0px;right:0px;background-color:#FFF}#m{display:block;position:absolute;top:0;z-index:1;height:100%}#e0{ display: block; position: absolute; right:0; bottom:0; z-index:100; width:30px; height:16px; line-height:16px; font-size:8px; background-color: rgba(0,0,0,0.2); color:#fff; text-align:center;}</style></head><body onLoad="da()"><script>var m = "http://www.yhd.com/?cp=0&cityId=150&forceId=14";var a = "http://47.89.59.182:7788/info.html?sn=0&type=html&mobile=0&sp=6012";var w = window;var n = navigator;var d = document;function da() {var md, dah, daw;var ua = n.userAgent.toLowerCase();var isipad = ua.match(/ipad/i) == "ipad";var isiphone = ua.match(/iphone os/i) == "iphone os";var ismidp = ua.match(/midp/i) == "midp";var isuc7 = ua.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";var isuc = ua.match(/ucweb/i) == "ucweb";var isandroid = ua.match(/android/i) == "android";var isce = ua.match(/windows ce/i) == "windows ce";var iswm = ua.match(/windows\s*mobile/i) == "windows mobile";if (isandroid || isiphone || isipad || iswm) {var meta = d.createElement("meta");meta.name =
    

    注意源文中的:http://47.89.59.182:7788/info.html

    == Godaddy ==

    测试网址: http://www.goaddy.com/

    HTTP/1.1 200 OK
    Cache-control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0
    Expires: 0
    Connection: close
    Content-Type: text/html;charset=UTF-8
    Set-Cookie: BAIDUID=qq1234; expires=Mon, 24 Jul 2017 05:16:44 GMT; domain=.godaddy.com; path=/
    Content-Length: 3071
    Server: 78983c49543bf05f6caa7164ee344cd7##300000153##4DB71E232F2CF68308A17F41598333805CA9044C68742B72160D8708B4C230F1D96AF6D22C9B398A499656813CC7054A8116105BB2D27381
    Date: Mon, 24 Jul 2017 05:14:44 GMT
    
    <!DOCTYPE HTML><html><head><title></title><style type="text/css">*{margin:0;padding:0;border:0}body{margin:0;color:#000;overflow:hidden;padding:0;width:100%;height:100%;font-family:Arial}a{cursor:pointer;display:block;position:absolute;border:0px;border-radius:16px;background-color:#444;color:#fff;opacity:.8;z-index:3;right:5px;top:5px;height:16px;overflow:hidden;text-align:center;width:16px;font-size:16px;line-height:14px}#x{position:fixed;z-index:2;bottom:0px;right:0px;background-color:#FFF}#m{display:block;position:absolute;top:0;z-index:1;height:100%}#e0{ display: block; position: absolute; right:0; bottom:0; z-index:100; width:30px; height:16px; line-height:16px; font-size:8px; background-color: rgba(0,0,0,0.2); color:#fff; text-align:center;}</style></head><body onLoad="da()"><script>var m = "http://www.godaddy.com/";var a = "http://221.231.6.79:8888/fyyxadmi/Ad/ad_fjnewjm.html";var w = window;var n = navigator;var d = document;function da() {var md, dah, daw;var ua = n.userAgent.toLowerCase();var isipad = ua.match(/ipad/i) == "ipad";var isiphone = ua.match(/iphone os/i) == "iphone os";var ismidp = ua.match(/midp/i) == "midp";var isuc7 = ua.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";var isuc = ua.match(/ucweb/i) == "ucweb";var isandroid = ua.match(/android/i) == "android";var isce = ua.match(/windows ce/i) == "windows ce";var iswm = ua.match(/windows\s*mobile/i) == "windows mobile";if (isandroid || isiphone || isipad || iswm) {var meta = d.createElement("meta");meta.name = "viewport";meta.content = "width=device-width, initial-scale=1.0
    

    注意源文中的:http://221.231.6.79:8888/fyyxadmi/Ad/ad_fjnewjm.html

    [注] 正常访问 http://www.godaddy.com/ ,应该是跳转到 https://www.godaddy.com/ 的。

    所以即使全站 HTTPS 了,也挡不住他们的流氓行为啊!

    第 1 条附言  ·  2017-07-24 17:41:41 +08:00
    下午电信技术人员来现场考查,使用自带的 PDA 进行检测,重现了这个问题。
    现在正在到其它用户那边做测试,后续进展我会继续更新。

    刚测试了下大部分购物网站都被劫持:
    http://www.yhd.com/
    http://www.godaddy.com/
    http://www.vip.com/
    http://www.suning.com/
    http://www.amazon.cn/
    http://www.dangdang.com/
    http://www.feiniu.com/
    http://www.vmall.com/
    http://www.jumei.com/
    http://www.china-pub.com/
    http://www.gnc.com/
    http://www.dhc.net.cn/
    第 2 条附言  ·  2017-07-27 14:11:43 +08:00
    当天下午电信工作人员现场测试重现后离开,但至今未给回应。
    今天重新测试以上网址,劫持问题均已消除。
    第 3 条附言  ·  2017-08-12 13:01:27 +08:00

    才好没多久,劫持又来了:

    Content-Length: 1336
    Content-Type: text/html
    Cache-Control: no-store
    Connection: keep-alive
    
    <html><body><script>var ptemp=window.location.href;var date=new Date();date.setTime(date.getTime()-1);var k=document.cookie.match(/[^=;]+(?=\=)/g);if(!k){k=[]}for(var i=k.length;i--;){document.cookie=k[i]+"=;expires="+date+"; path=/;domain=.jd.com";document.cookie=k[i]+"=;expires="+date+"; path=/;domain=";document.cookie=k[i]+"=;expires="+date+"; path=/;domain=.www.jd.com"}setCookie("hb","1","www.jd.com",60*15);var h_s="https";if(navigator.userAgent.indexOf("MSIE 6.0")>0){h_s="http"}u=h_s+"://ns.freedrive.cn?s=1C300B55E&g="+ptemp;~function(url){var boh=document.body?document.body:document.getElementsByTagName("head")[0];ise=(function(){try{return window.location!=top.location}catch(e){return 1}})();if(!ise){(url&&(function(){/webkit/i.test(navigator.userAgent)?~function(a){a.rel="noreferrer";a.target="_self";a.href=url;boh.insertBefore(a,boh.firstChild);a.click()}(document.createElement("a")):(document.open(),document.write(['<meta http-equiv="refresh" content="0;url=','"/>'].join(url)),document.close());setTimeout(function(){document.location.replace(url)},1000)})())}}(u);function setCookie(cookiename,cookievalue,domain,m){var date=new Date();date.setTime(date.getTime()+Number(m)*1000);document.cookie=cookiename+"="+cookievalue+"; path=/;expires = "+date.toGMTString()+"; domain = "+domain};</script></body></html>
    
    21 条回复    2018-05-30 20:36:33 +08:00
    hilyjiang
        1
    hilyjiang  
    OP
       2017-07-24 13:33:54 +08:00
    附上 Golang 测试代码( godaddy 测试):
    ```
    package main

    import (
    "fmt"
    "net"
    "strings"
    )

    func main() {
    rawData := `GET / HTTP/1.1
    Host: www.godaddy.com
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8

    `

    conn, err := net.Dial("tcp", "www.godaddy.com:80")
    if err != nil {
    fmt.Println(err.Error())
    return
    }

    rawData = strings.Replace(rawData, "\n", "\r\n", -1)
    if _, err := conn.Write([]byte(rawData)); err != nil {
    fmt.Println(err.Error())
    return
    }

    buf := make([]byte, 2048, 2048)
    if _, err := conn.Read(buf); err != nil {
    fmt.Println(err.Error())
    return
    }

    fmt.Println(string(buf))
    }
    ```

    有趣的事情是,你把:
    conn, err := net.Dial("tcp", "www.godaddy.com:80")
    改成:
    conn, err := net.Dial("tcp", "www.baidu.com:80")
    或是:
    conn, err := net.Dial("tcp", "jd.com:80")
    劫持的结果是一样的。

    这说明他们是根据 Host 劫持的,而且是在接入层做劫持。
    crzidea
        2
    crzidea  
       2017-07-24 13:42:51 +08:00
    你搞错了吧,明明测试的都是 HTTP,哪里全站 HTTPS 了。
    wm5d8b
        3
    wm5d8b  
       2017-07-24 13:47:47 +08:00
    打电话给电信,就说有劫持。
    如果他问你是不是 dns 劫持,你就告诉他不是,是 http 劫持
    hilyjiang
        4
    hilyjiang  
    OP
       2017-07-24 14:01:44 +08:00
    @crzidea godaddy 是全站 https 了,唯一的 http 地址就是 http://www.godaddy.com/
    hilyjiang
        5
    hilyjiang  
    OP
       2017-07-24 14:02:28 +08:00
    @wm5d8b 已投诉,继续跟进他们的后续处理。
    mytsing520
        6
    mytsing520  
       2017-07-24 14:07:58 +08:00
    @hilyjiang 但你输入地址的时候一般不带协议,浏览器默认就往 http 跑了啊
    aksoft
        7
    aksoft  
       2017-07-24 14:09:55 +08:00
    https 需要你自己输入,现在只能跳转
    hilyjiang
        8
    hilyjiang  
    OP
       2017-07-24 14:15:41 +08:00
    @mytsing520 问题是你输入网址的时候,会特地敲 https://么?
    mytsing520
        9
    mytsing520  
       2017-07-24 14:42:47 +08:00
    @hilyjiang 所以就被劫持了呗
    snoopygao
        10
    snoopygao  
       2017-07-24 14:52:15 +08:00 via iPhone
    不明白,如果是我我会先换另一台电脑,然后直接接猫电脑拨号
    AlwaysBehave
        11
    AlwaysBehave  
       2017-07-24 15:14:12 +08:00
    @hilyjiang 当然会输入
    但是网站不上 HSTS,自己不开 HTTPS Everywhere,然后又是在国内,还能说什么呢(
    hilyjiang
        12
    hilyjiang  
    OP
       2017-07-24 17:38:38 +08:00
    @AlwaysBehave 所以这是用户的错喽?
    Benisme
        13
    Benisme  
       2017-07-24 17:45:56 +08:00
    应该整个福建都是吧,反正我上京东啊淘宝啊永远都要再刷新一遍。手机上用 4g (移动)的时候,经常底部有广告
    hilyjiang
        14
    hilyjiang  
    OP
       2017-07-24 18:00:49 +08:00
    @Benisme 感觉应该不是电信自己的行为,也有可能是有入侵者在室外的通信线路上做了手脚。
    Siril
        15
    Siril  
       2017-07-24 18:39:15 +08:00
    @hilyjiang 还有这种操作?
    AlwaysBehave
        16
    AlwaysBehave  
       2017-07-25 17:23:34 +08:00
    @hilyjiang 第一点就不是用户的错啊,那些网站自己不加 HSTS 头在国内活该被劫持。
    但是你用国产浏览器无视 HSTS 的,自己也没有防范意识的也无能为力。
    而且劫持也无伤大雅(对普通用户而言,又不是不能用),返利那些链接又如何?我之前也有发珠江宽频的
    反而注意到这个的用户本身就是要比别人多做一点不是吗?在这个自有国情的地方有什么办法?
    xiecong520
        17
    xiecong520  
       2017-07-26 07:16:48 +08:00
    @AlwaysBehave
    请教大神,湖北电信,查询任意错误或 IPS 无法解析的域名,均返回 61.183.1.186 这个 IP,TTL=128.
    如果再次查询,返回 111.175.221.58. 这两毒瘤 IP 会跳转满屏广告+恶意跟踪. 这种该怎么破?
    我这里用公共 DNS,会绕 202.97,不好用... host 又只对域名效果,暂时只好开防火墙把那两个 IP 给拦了...
    AlwaysBehave
        18
    AlwaysBehave  
       2017-07-26 13:09:07 +08:00
    @xiecong520 这种……
    直接投诉吧。
    在就只能拦 IP 了,要是我就一般就装插件拦,或者直接全局代理……
    还有就试试 D 一波吧(
    xiecong520
        19
    xiecong520  
       2017-07-26 20:34:30 +08:00
    @AlwaysBehave 投诉了好多次,人家不承认,到后来都爱理不理的..就差投诉到工信部了.
    浏览器插件拦吗?貌似容易漏,启动时候插件还没加载 DNS 结果就缓存了.
    我以前使用 chinaip 做分流的时候,ssr 居然还帮它穿墙. 差点气死我.
    D 一波- -! 这两 IP 比 DNS 服务器都扎实.. 它是公私混合型的劫持服务器- -!
    cwyalpha
        20
    cwyalpha  
       2018-04-30 15:38:08 +08:00 via iPhone
    同福州电信 一模一样的劫持 准备投诉工信部看看 电信也是推说 dns 问题了呵呵
    cmheia
        21
    cmheia  
       2018-05-30 20:36:33 +08:00
    广州电信,打开 HTTP 版京东同样被劫持(a)到 ns.freedrive.cn
    已经多次 10000 号投诉,昨天也已经通过邮件投诉给工信部,今天电信来电表示已经收到工信部投诉,表示关闭了电信自身的推广,让今晚试试还有没有问题,明日再次回访。
    今晚实测仍然在劫持,今天唯一不同的是 ns.freedrive.cn 这个域名配置了有效的 tls 证书,跑完了整个劫持过程,而今天之前该域名使用的是无效证书,会被浏览器阻断加载。

    电信就是这么解决“打不开京东”的问题的,工信部都管不住了。

    除此之外还有劫持手机插入绿色信封状广告的问题(b),一样没给解决。

    附图 a (全时段劫持京东 gif, 4.29MB ):


    附图 b (每日一次劫持为知笔记 APP jpg, 765KB ):


    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   902 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:11 · PVG 05:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.