首页
社区
课程
招聘
[原创] 谁动了我的宽带?记一次HTTP劫持的发现过程
发表于: 2020-4-6 16:35 6776

[原创] 谁动了我的宽带?记一次HTTP劫持的发现过程

2020-4-6 16:35
6776

日常遇到的劫持一般为DNS劫持,可在路由器里强制指定公共DNS解决。本文记录了自己家用宽带HTTP劫持的发现过程。相比DNS劫持,HTTP劫持更为流氓,解决起来也比较棘手。

近来在家上网时,iPhone Safari网页里经常弹出“在手机淘宝中打开连接吗?”的提示框,如下图:

作为一名iOS码农,很自然的知道这是网页在调用淘宝app的 URL Scheme tbopen:// ,这是干什么的呢?当然是淘宝客的推广链接,点了之后打开淘宝去领券,如果你按提示下单了,推广者就能拿到返利。问题在于,网页为什么会发出这种请求,结合当前网站是http的,隐隐觉得可能是被劫持了。下面记录一下排查过程。

先说一下环境,家里宽带是联通百兆,路由器华硕AC86U,刷的梅林(仅开启虚拟内存插件),路由器直接拨号,且当时安装条件限制,家里没有光猫,接线员直接接到了一楼的交换机上。

是网站自己挂的广告吗?
在Wi-Fi下,每次用Safari隐身模式反复访问截图里这个网站,仍会出现这个提示,概率大概30%-40%。切换手机联通4G网络,移动4G,则一次都不会出现。换用电脑Safari和Chrome,也一次不会出现。
结论:仅在iPhone手机端Wi-Fi环境才会出现

是路由器刷的梅林固件导致的吗?
翻箱倒柜找出了以前买的 TPLink-WR700n,就是下图这个小路由器(简直是神器,小巧玲珑,AP和Router模式任意切换),设置好拨号账号密码后换掉华硕继续测试,震惊了,劫持弹窗仍然存在。

结论:梅林没问题,只能是运营商的锅了。

由于梅林里已经设置DNS为114,排除了DNS劫持。确定是运营商的接入点的问题,接下来就是看看它究竟是怎么劫持的。这里使用Charles抓包iPhone(还没必要祭出Wireshark大杀器)具体设置不在这里讲了,在百度里随机访问网页,待出现劫持时,停止记录,开始分析记录日志。从后往前,找出返回数据里包含 tbopen 的请求。不出意外,很容易就发现了:

原请求为 http://static.geetest.com/static/js/fullpage.8.9.3.js ,经过确认,https://www.geetest.com/极验,是业界提供安全与风控解决方案的平台,不可能返回 tbopen 这样的数据的。在Charles里复制此http请求的curl命令出来,使用阿里云VPS里进行访问,获取到的则为真实的JS内容。

使用自己的Mac重放这个curl命令,还是有很高几率被劫持。进一步,修改此请求的User-Agent字段,去掉手机标识符,仅保留为Safari,继续重放,则不会出现被劫持。同时,注意到发生劫持后,有个新的同样的js请求发出,url里多了个参数 utm_id=1024001,会返回正确的JS内容,这样做的目的,猜测可能是为了区分请求,好让真正的JS能正常返回不影响网页加载,否则可能出现劫持后再被劫持,无法加载出正确的JS内容。

至此,整个劫持的过程大致清晰了:联通的接入点会根据UA过滤出移动设备中的http JS请求,然后一定几率返回劫持后的伪JS内容,在里面嵌入淘宝客推广链接。

劫持的JS内容如下,里面有淘宝客推广链接,建议阿里妈妈的相关人士解决一下?

代码比较简单,将自己的JS脚本挂载到页面DOM上,使用setInterval延迟20ms去调用tbopen,打开淘宝app领券。
想在手机端暂时屏蔽的话,可以在surge里加个Header Rewrite规则修改UA

用手机录屏两段视频作为证据,先打联通客服投诉电话,客服按套路说会派人来检查。一天过后回电说检修人员说是客户家里问题,无法解决。 ???根本没人联系我,且上门检查。没关系,心平气和的告诉客服小妹,你们解决不了那俺只能向上投诉了。这里不用跟客服急眼,先向运营商投诉本来也不指望他们能马上解决,该走的流程还是得走一下。找到省通信管理局网站,留言说明了情况,第二天临下班前就有回访电话,把自己录的视频作为证据都发过去,没多久运营商回电说安排人带路由器检查确定问题。检查的小哥没多久也回电了解情况,先问是否重设了DNS为114,(梅林早已设置过),无解后约了个时间说来检查。约定的检查日期来了,我不停的重试测试,还是会被劫持,早上10:30左右,路由器记录到网络重连,之后再测试,再也没出现过劫持,然而检查人员也并未登门检查,看来是悄悄把接入点给改了。至此,一场没有结局的投诉就这样不明不白的解决了。

整个过程中,面对网络运营商,用户人微言轻,举证困难,运营商可以随时修改设置关闭劫持。通管局指定运营商自查,并不是指定第三方来审查。运营商“我查我自己”,究竟是内部个别员工作祟还是自身作祟,也不得而知。网络安全服务提供商极验,对自己提供的服务未采用https协议传输,在这两年风风火火的全民https时代,显得尤为落后,更何况自身提供的就是反欺诈等服务,到头来反而自身服务被劫持,作为受害者兼背锅侠,也是冤枉。

最后的最后,站长们还没上https的赶快上吧。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (12)
雪    币: 914
活跃值: (2463)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
2
有点东西
2020-4-7 09:07
0
雪    币: 3279
活跃值: (3326)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
思路清晰明了
2020-4-7 10:13
0
雪    币: 471
活跃值: (4048)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
看那些卖电信级设备的供应商 官网设备宣传内容就知道了 这是运营商增加收入的来源,当然也有员工私下赚外快的
2020-4-7 20:28
0
雪    币: 1058
活跃值: (1267)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
xss 看那些卖电信级设备的供应商 官网设备宣传内容就知道了 这是运营商增加收入的来源,当然也有员工私下赚外快的
用户太难取证了
2020-4-7 20:49
0
雪    币: 231
活跃值: (1703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
butterflydog 用户太难取证了
Wireshark可以给iphone抓包么
2020-4-9 05:57
0
雪    币: 1058
活跃值: (1267)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
myymyy Wireshark可以给iphone抓包么[em_16]
可以的,Mac 上需要先运行rvictl -s
2020-4-9 20:32
0
雪    币: 3414
活跃值: (3003)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

联通就是乐色,昨天去补一张sim卡收我20块钱!一张sim卡的成本就5毛钱,他这完全就是敲诈!等合约期过了,果断转网!

最后于 2020-4-30 10:04 被jiaoxiake编辑 ,原因:
2020-4-30 10:03
0
雪    币: 3725
活跃值: (619)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
之前运营商劫持大面积挂马, 导致带有flash漏洞的客户端被攻击, LOL / qqlive / 爱奇艺 / 搜狗输入法 等重量级的客户端都有使用flash, 木马一天的量就达到五百多万. 捅出这么大的篓子, 运营商啥事没有. 还有天翼校园客户端挂马, 也是啥事没有.  之前还和联通沟通, 后来也懒得说了, 把基础业务弄好就行了, 其他的等能人来收拾吧.
2020-4-30 10:59
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
UA过滤是啥
2020-4-30 16:27
0
雪    币: 1058
活跃值: (1267)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
逻辑错误 之前运营商劫持大面积挂马, 导致带有flash漏洞的客户端被攻击, LOL / qqlive / 爱奇艺 / 搜狗输入法 等重量级的客户端都有使用flash, 木马一天的量就达到五百多万. 捅出这么大 ...
普通用户就是任人鱼肉
2020-5-1 11:32
0
雪    币: 1058
活跃值: (1267)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
ZwCopyAll UA过滤是啥
根据 http请求header里的user-agent字段值来过滤
2020-5-1 11:33
0
雪    币: 15
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
电信投诉过 维修的过来直接懵逼了 抽了几根烟走了 看情况得继续往上投诉才管用
2020-5-9 15:45
0
游客
登录 | 注册 方可回帖
返回
//