V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iugo
V2EX  ›  程序员

移动欺负百度,用 fromCharCode 和字符替换隐藏自己,防不胜防

  •  
  •   iugo ·
    iugo · 2016-09-12 17:48:16 +08:00 · 5168 次点击
    这是一个创建于 3020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    河南铁通,目前已经合并入河南移动。

    使用河南铁通的宽带,目前遇到两个问题:

    1. DNS 劫持和污染
    2. HTTP 攻击

    使用铁通服务很久了,最开始没有这样的中间人攻击,现在都出现了。在网上搜索,和广东移动的攻击很类似,猜测是有组织的。

    DNS 劫持主要是让特定域名(主要是不存在的)转向到一个铁通的广告页面。 DNS 污染主要通过对 53 端口的攻击。

    HTTP 攻击的现象主要体现是访问京东时,大概有 30% 以上的概率跳到广告联盟相关链接,然后跳回首页。在访问某件具体商品时很烦,总是打不开商品,被跳回首页。

    刚开始以为这个工具是针对京东,按照以前的经验,从页面源码入手,没发现什么特别的。然后抓包仔细研究。

    发现目前 HTTP 攻击的流程大概是这样的:

    1. 攻击者先找到一个具有普适性的链接,于是瞄准了百度。比如京东页面中包含一个百度相关 JS 代码会被动态插入,当协议不为 https 时,这段代码的值为 http://push.zhanzhang.baidu.com/push.js
    2. 进行劫持,将 http://push.zhanzhang.baidu.com/push.js 的返回信息修改为这样:
    HTTP/1.1 302 Temporarily Moved
    Location: http://0.ebuy234.com/41.s.1.jpg
    Cache-Control: nocache
    Pragma: no-cache
    Expires: -1
    Connection: close
    Content-Type: text/html
    Content-length: 0
    
    1. ebuy234.com 这个域名很可能就是攻击者拥有的。41.s.1.jpg 这个文件名也是有意义的,41.s.1 就是在广告联盟中的账号。
    2. 这是查看 http://0.ebuy234.com/41.s.1.jpg 这个请求的返回信息:
    HTTP/1.1 200 OK
    Server: marco/0.18
    Date: Mon, 12 Sep 2016 09:14:14 GMT
    Content-Type: text/javascript; charset=utf-8
    Connection: keep-alive
    Vary: Accept-Encoding
    X-Source: U/200
    X-Cache: MISS from mix-hz-fdi-171; HIT(R) from cmn-js-czx-132
    Cache-Control: max-age=636911
    ETag: W/"e90cbe32b9476b0b5141b1dfa1efe4e9"
    Expires: Thu, 15 Sep 2016 22:41:39 GMT
    Last-Modified: Thu, 25 Aug 2016 05:22:20 GMT
    X-Request-Id: 807dd97c8bdb2fc7417702ae3d8ac9cb; d870a4b7c963d11713631a13c91513de
    Age: 471141
    X-Mirror-Request-Id: 156a2b2ac6c56484a81210e3894023a9
    Via: T.101168.M.1, T.596.M.1, V.ctn-zj-hgh-092, S.mix-hz-fdi-170, V.mix-hz-fdi-171, T.165133.R.1, M.cmn-js-czx-132
    Content-Length: 18169
    
    Function('‌‍​‌‌‍'.replace(/..../g,function($){return String.fromCharCode(parseInt($.replace(/./g,function($){return {'​':'00','‌':'01','‍':'10','':'11'}[$]}),2))}))()
    

    这就是关键了,字符替换。以上代码已经简化。

    1. 然后再次载入一个功能类似的文件 http://v.usee123.com/41_s_1.json
    2. 最后就是跳转到广告联盟的链接了: p.egou.com
    第 1 条附言  ·  2016-09-18 10:40:50 +08:00
    经过运营商投诉与工信部申诉, DNS 污染的问题得到了解决.

    HTTP 攻击尚未解决. 等待中.
    15 条回复    2016-09-13 17:57:32 +08:00
    Cu635
        1
    Cu635  
       2016-09-12 18:14:04 +08:00
    狗咬狗,不存在谁欺负谁的问题。
    yonka
        2
    yonka  
       2016-09-12 18:57:22 +08:00
    最近感觉运营商已经丧病了...
    amaranthf
        3
    amaranthf  
       2016-09-12 18:59:46 +08:00
    还是我 https 靠谱……
    wjm2038
        4
    wjm2038  
       2016-09-12 19:31:27 +08:00 via Android
    神奇的运营商
    ixufuyang
        5
    ixufuyang  
       2016-09-12 19:39:40 +08:00 via Android
    直接换了 DNS 了事
    mytsing520
        6
    mytsing520  
       2016-09-12 20:32:28 +08:00
    @ixufuyang 很明显路由层面的强行塞入,换 DNS 无济于事
    rwalle
        7
    rwalle  
       2016-09-12 21:00:09 +08:00
    移动也不是第一次干这种事,我见得多了
    很简单,先打 10086 投诉,告诉你有证据,八成他们不管,然后投诉到工信部,移动会跪着来求你然后给你单独屏蔽广告
    还可以考虑顺便向百度反映,因为以前有运营商被告的情况( http://media.people.com.cn/GB/40606/11424996.html ),虽然说百度的客服约等于没有
    iugo
        8
    iugo  
    OP
       2016-09-12 22:55:58 +08:00   ❤️ 1
    通过这个案例,我还是有学到东西的,比如:

    http://www.cnblogs.com/52cik/p/js-hide-code.html
    sxm
        9
    sxm  
       2016-09-12 23:37:13 +08:00
    这劫持的还是有点“水平”,知道隐藏自己。我这电信 DNS 劫持错误域名到软色情广告页,投诉了几次后,还是不承认劫持做广告。但是背后却把广告承接页删了,单独替我把错误域名返回的广告 ip 屏蔽了。
    https://www.v2ex.com/t/285169
    notre
        10
    notre  
       2016-09-13 02:36:41 +08:00
    不用 https ,怪我咯?
    wyntergreg
        11
    wyntergreg  
       2016-09-13 08:53:27 +08:00
    联通也干这个
    yejinmo
        12
    yejinmo  
       2016-09-13 09:11:18 +08:00
    河北移动

    使用手机网络地址栏百度搜索(别说我为啥不用谷歌, SS 太费电了)的时候,总是会跳到百度首页,并且地址栏会跟上一个 /?from=1012585p

    WiFi 网络没事

    怀疑是运营商干的好事儿,该如何办
    Khlieb
        13
    Khlieb  
       2016-09-13 09:33:51 +08:00 via Android
    @yonka @wjm2038 有人塞钱了
    stevegy
        14
    stevegy  
       2016-09-13 10:00:41 +08:00
    直接用 Firewall Drop outbound 到这些地址到访问,然后能用 https 的都用 https ,京东的 https 做得不彻底,有时候点几个页面又跳到 http 去了。
    全 Internet HTTPS 已经是标准安全建议了。
    魔都电信最近又开始了,还是 HTTP iframe 嵌入,我还剩下个 new.163.com 只能用 HTTP 。。。
    直接干掉这个网段: iptables -A OUTPUT -d 61.152.73.0/24 -j DROP 至少不辣眼睛了
    URgoy
        15
    URgoy  
       2016-09-13 17:57:32 +08:00 via iPhone
    一楼说的在理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1314 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:43 · PVG 07:43 · LAX 15:43 · JFK 18:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.