梅林@谁动了我的宽带?记一次HTTP劫持的发现过程
北京联盟_本文原题:谁动了我的宽带?记一次HTTP劫持的发现过程
日常遇到的劫持一般为DNS劫持 , 可在路由器里强制指定公共DNS解决 。 本文记录了自己家用宽带HTTP劫持的发现过程 。 相比DNS劫持 , HTTP劫持则更为流氓 , 解决起来也比较棘手 。
近来在家上网时 , iPhone Safari网页里经常弹出“在手机淘宝中打开连接吗?”的提示框 , 如下图:
本文插图
作为一名iOS码农 , 很自然的知道这是网页在调用淘宝app的 URL Scheme tbopen://, 这是干什么的呢?当然是淘宝客的推广链接 , 点了之后打开淘宝去领券 , 如果你按提示下单了 , 推广者就能拿到返利 。 问题在于 , 网页为什么会发出这种请求 , 结合当前网站是http的 , 隐隐觉得可能是被劫持了 。 下面记录一下排查过程 。
谁在劫持
【梅林@谁动了我的宽带?记一次HTTP劫持的发现过程】先说一下环境 , 家里宽带是联通百兆 , 路由器华硕AC86U,刷的梅林(仅开启虚拟内存插件) , 路由器直接拨号 , 且当时安装条件限制 , 家里没有光猫 , 接线员直接接到了一楼的交换机上 。
1. 是网站自己挂的广告吗?
在Wi-Fi下 , 每次用Safari隐身模式反复访问截图里这个网站 , 仍会出现这个提示 , 概率大概30%-40% 。 切换手机联通4G网络 , 移动4G , 则一次都不会出现 。 换用电脑Safari和Chrome , 也一次不会出现 。
结论:仅在iPhone手机端Wi-Fi环境才会出现
2. 是路由器刷的梅林固件导致的吗?
翻箱倒柜找出了以前买的 TPLink-WR700n , 就是下图这个小路由器(简直是神器 , 小巧玲珑 , AP和Router模式任意切换) , 设置好拨号账号密码后换掉华硕继续测试 , 震惊了 , 劫持弹窗仍然存在 。
本文插图
结论:梅林没问题 , 只能是运营商的锅了 。
怎样劫持
由于梅林里已经设置DNS为114 , 排除了DNS劫持 。 确定是运营商的接入点的问题 , 接下来就是看看它究竟是怎么劫持的 。 这里使用Charles抓包iPhone(还没必要祭出Wireshark大杀器)具体设置不在这里讲了 , 在百度里随机访问网页 , 待出现劫持时 , 停止记录 , 开始分析记录日志 。 从后往前 , 找出返回数据里包含 tbopen 的请求 。 不出意外 , 很容易就发现了:
本文插图
原请求为 , 经过确认 , 极验 , 是业界提供安全与风控解决方案的平台 , 不可能返回 tbopen 这样的数据的 。 在Charles里复制此http请求的curl命令出来 , 使用阿里云VPS里进行访问 , 获取到的则为真实的JS内容 。
curl -H 'Host: static.geetest.com' -H 'Accept: */*' -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1' -H 'Accept-Language: zh-cn' -H 'Referer:' --compressed ''
使用自己的Mac重放这个curl命令 , 还是有很高几率被劫持 。 进一步 , 修改此请求的User-Agent字段 , 去掉手机标识符 , 仅保留为Safari , 继续重放 , 则不会出现被劫持 。 同时 , 注意到发生劫持后 , 有个新的同样的js请求发出 , url里多了个参数utm_id=1024001 , 会返回正确的JS内容 , 这样做的目的 , 猜测可能是为了区分请求 , 好让真正的JS能正常返回不影响网页加载 , 否则可能出现劫持后再被劫持 , 无法加载出正确的JS内容 。
至此 , 整个劫持的过程大致清晰了:联通的接入点会根据UA过滤出移动设备中的http JS请求 , 然后一定几率返回劫持后的伪JS内容 , 在里面嵌入淘宝客推广链接 。
推荐阅读
- 风雅房县|【我的脱贫故事】刘运华:脱贫不等靠 幸福来敲门
- 钱江晚报|“我的母亲像个小孩子”,杭州初一女生给妈妈的信刷屏!网友:这孩子是前世知己
- 大平和|?今天早上,一大批民警出动了!…
- 环线科技|用手机导航也算违章?交警:只要你动了,就违章了!要扣分罚款
- 民生资讯在线|赣县有人为了摘杨梅,惊动了警方
- 葫芦娃全脱光的情况下,怎么区分他们
- 短片电影《我的鸵鸟先生》在京开机
- 我的三个锡伯兄弟
- 今年对禁烟动了真格,作为医生我感动了!
- 孙先生|半个月用掉2500块钱的电费,我的电表怎么跑得这么快!?