V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
l1fan
V2EX  ›  程序员

jd.com https 被劫持是什么原因?

  •  1
     
  •   l1fan · 2018-03-07 13:22:16 +08:00 · 4985 次点击
    这是一个创建于 2455 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天上京东时被劫持到 jiechi 第一反应就是妈蛋被运营商劫持了=,= 返回上页看了眼 url O。O https 的,但我知道的是 https 不会被劫持。而且我印象里也没导入过什么乱七八糟的根证书。 这是什么原因呢? 我在手机上试了也会被劫持,chrome 里看到是 302 跳转 chrome

    36 条回复    2018-03-08 10:48:01 +08:00
    hand515
        1
    hand515  
       2018-03-07 13:28:21 +08:00
    DNS 劫持??或者你装了什么奇怪的根证书?
    scriptB0y
        2
    scriptB0y  
       2018-03-07 13:31:13 +08:00
    DNS 是明文的,在 HTTPS 之前就被劫持了。
    kskdnda
        3
    kskdnda  
       2018-03-07 13:31:53 +08:00 via iPhone
    如果 https 都能避免劫持,那么 vpn 还有存在的意义吗
    Zzzzzzzzz
        4
    Zzzzzzzzz  
       2018-03-07 13:34:22 +08:00
    插件吧
    echo365
        5
    echo365  
       2018-03-07 13:38:14 +08:00
    浏览器插件。路由器插件。。。。。。
    lscho
        6
    lscho  
       2018-03-07 13:39:38 +08:00
    我的百度首页 https 也会劫持,怀疑是路由器的问题,feuxun 的。。。。
    lscho
        7
    lscho  
       2018-03-07 13:39:53 +08:00
    @lscho feixun
    gamexg
        8
    gamexg  
       2018-03-07 14:03:39 +08:00 via Android
    https 证书是?
    morethansean
        9
    morethansean  
       2018-03-07 14:51:23 +08:00
    curl -vvI https://item.jd.com/12006637.html --resolve item.jd.com:42.236.8.129

    看看证书呢?
    ooooo
        10
    ooooo  
       2018-03-07 14:57:31 +08:00
    换个不带插件的浏览器试试
    手机端 wifi 试试
    问题要说清楚,大家才好排查...................
    dahounet
        11
    dahounet  
       2018-03-07 15:13:11 +08:00
    检查 https 证书先
    crz
        12
    crz  
       2018-03-07 15:16:29 +08:00
    抓包看看?
    breeswish
        13
    breeswish  
       2018-03-07 15:26:56 +08:00
    先把证书发出来
    terence4444
        14
    terence4444  
       2018-03-07 15:27:55 +08:00 via iPhone
    LSP 可以劫持吗?
    582033
        15
    582033  
       2018-03-07 15:29:53 +08:00
    之前发的, 楼主参考下? https://www.v2ex.com/t/412011
    TestSmirk
        16
    TestSmirk  
       2018-03-07 15:34:29 +08:00
    这不是 302 了吗..
    TestSmirk
        17
    TestSmirk  
       2018-03-07 16:00:14 +08:00
    302 到 http 连接了估计
    l1fan
        18
    l1fan  
    OP
       2018-03-07 16:33:04 +08:00
    @morethansean
    ```
    * Couldn't parse CURLOPT_RESOLVE entry 'item.jd.com:42.236.8.129'!
    * Trying 42.236.8.129...
    * TCP_NODELAY set
    * Connected to item.jd.com (42.236.8.129) port 443 (#0)
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    * CAfile: /etc/ssl/cert.pem
    CApath: none
    * TLSv1.2 (OUT), TLS handshake, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Server hello (2):
    * TLSv1.2 (IN), TLS handshake, Certificate (11):
    * TLSv1.2 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.2 (IN), TLS handshake, Server finished (14):
    * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.2 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.2 (OUT), TLS handshake, Finished (20):
    * TLSv1.2 (IN), TLS change cipher, Client hello (1):
    * TLSv1.2 (IN), TLS handshake, Finished (20):
    * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
    * ALPN, server accepted to use h2
    * Server certificate:
    * subject: C=CN; ST=beijing; L=beijing; O=BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY CO., LTD.; CN=*.jd.com
    * start date: Jul 4 05:47:07 2017 GMT
    * expire date: Aug 28 09:42:54 2018 GMT
    * subjectAltName: host "item.jd.com" matched cert's "*.jd.com"
    * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign Organization Validation CA - SHA256 - G2
    * SSL certificate verify ok.
    * Using HTTP2, server supports multi-use
    * Connection state changed (HTTP/2 confirmed)
    * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
    * Using Stream ID: 1 (easy handle 0x7fe215806600)
    > HEAD /12006637.html HTTP/2
    > Host: item.jd.com
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    * Connection state changed (MAX_CONCURRENT_STREAMS updated)!
    < HTTP/2 200
    HTTP/2 200
    < server: JDWS/2.0
    server: JDWS/2.0
    < date: Wed, 07 Mar 2018 08:29:00 GMT
    date: Wed, 07 Mar 2018 08:29:00 GMT
    < content-type: text/html; charset=gbk
    content-type: text/html; charset=gbk
    < content-length: 96167
    content-length: 96167
    < vary: Accept-Encoding
    vary: Accept-Encoding
    < ser: 109.29
    ser: 109.29
    < expires: Wed, 07 Mar 2018 08:29:01 GMT
    expires: Wed, 07 Mar 2018 08:29:01 GMT
    < cache-control: max-age=60
    cache-control: max-age=60
    < last-modified: Wed, 07 Mar 2018 08:28:05 GMT
    last-modified: Wed, 07 Mar 2018 08:28:05 GMT
    < hh: 1-1
    hh: 1-1
    < via: BJ-Y-NX-106(HIT), http/1.1 ZZ-UNI-1-JCS-155 ( [cSsSfD])
    via: BJ-Y-NX-106(HIT), http/1.1 ZZ-UNI-1-JCS-155 ( [cSsSfD])
    < age: 0
    age: 0

    <
    * Connection #0 to host item.jd.com left intact
    ```
    honeycomb
        19
    honeycomb  
       2018-03-07 16:33:11 +08:00
    楼主考虑一下 @582033 提到的可能性,浏览器有供扩展使用的 WebRequest API,可供恶意扩展程序滥用
    honeycomb
        20
    honeycomb  
       2018-03-07 16:36:31 +08:00
    Chrome 官方有提供一个 The Chrome Apps Developer Tool,可以检查某个期间哪些扩展具体动用了哪些 API,可供排查。

    https://chrome.google.com/webstore/detail/chrome-apps-extensions-de/ohmmkhmmmpcnpikjeljgnaoabkaalbgc
    l1fan
        21
    l1fan  
    OP
       2018-03-07 16:42:22 +08:00
    @ooooo 我写了哦 用手机访问一样被劫持,手机用的 safari。 所以基本肯定不是插件或电脑的问题。而且证书 chrome 验证也没问题。主要想讨论的点是运营商通过什么手段劫持甚至修改了 https 内容
    ysc3839
        22
    ysc3839  
       2018-03-07 17:06:52 +08:00
    @l1fan 先想办法查看是什么证书。
    ysc3839
        23
    ysc3839  
       2018-03-07 17:09:36 +08:00
    @l1fan Chrome DevTools 选择 Security,然后访问看看。
    l1fan
        24
    l1fan  
    OP
       2018-03-07 17:12:17 +08:00
    wormcy
        25
    wormcy  
       2018-03-07 17:20:53 +08:00
    浏览器扩展有没有问题
    imlink
        26
    imlink  
       2018-03-07 20:30:00 +08:00 via Android   ❤️ 1
    @l1fan 这个 302 应该是 https://item.jd.com 发起的,它可能要跳转某 http://item2.jd.com 而这个 http 被挟持了
    morethansean
        27
    morethansean  
       2018-03-07 21:20:35 +08:00 via Android
    @imlink 楼主截图不是写了直接跳了那个劫持网站...
    ptyfork
        28
    ptyfork  
       2018-03-07 22:00:00 +08:00
    @imlink
    不可能,1 楼的截图,302 location 头部是在 https 内完成的,这个 location 是 p .egou.com, 如果是跳转某 http://item2.jd.com 被劫持,这需要两次独立的 http 请求。
    jingniao
        29
    jingniao  
       2018-03-07 22:02:10 +08:00
    我在想,会不会真的是京东的 cdn 有问题?
    ptyfork
        30
    ptyfork  
       2018-03-07 22:06:04 +08:00
    @jingniao

    我也觉得可能是内鬼, 有些做 cdn 的,最前面用了 https, 到上游还在用 http 的情况。

    这个应该发到工单节点是不是好点?
    imlink
        31
    imlink  
       2018-03-07 22:09:31 +08:00
    @ptyfork 如果是 cdn 的话这个 http://tieba.baidu.com/p/4890556666 也是一样的?
    Infernalzero
        32
    Infernalzero  
       2018-03-07 22:39:42 +08:00
    说明狗东没加 HSTS,加了以后是 307 就不会被拦截
    onionnews
        33
    onionnews  
       2018-03-07 23:07:51 +08:00 via Android
    https everywhere 扩展或者改 DNS
    aksoft
        34
    aksoft  
       2018-03-08 10:41:28 +08:00
    我的也被劫持了
    aksoft
        35
    aksoft  
       2018-03-08 10:45:54 +08:00
    应该不是 dns,可能是扩展或者插件,firefox
    chrome 没遇到
    aksoft
        36
    aksoft  
       2018-03-08 10:48:01 +08:00
    我把插件都删了也不行。。我错了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.