电脑使用 Proxyman 或 Charles 抓包手机 招商银行 APP 指定金价页面的网络请求。
APP 页面的金价每隔几秒会更新一次,抓包工具中域名和请求列表中无新增内容。
电脑和手机均安装证书,可在抓包工具中查看到请求的响应信息。
抓包工具无法抓取所有的网络请求吗,还是因为该 APP 有特殊之处。
望路过大佬不吝赐教,感谢。
1
Dora112233 173 天前 1
因为 app 不信任你自己安装的这个证书
|
2
HFX3389 173 天前 1
Android 7 开始 App 可以不信任用户区自己安装的证书,你得 root 或者用虚拟 root
|
3
ma46 173 天前 1
你 root 之后这些银行 app 大概率就不给你用了
|
4
ZnductR0MjHvjRQ3 173 天前 1
你抓的什么包? http ?还是 HTTPs ? 有没有一种可能他是通过 websocket 来传的
|
6
Donaldo 172 天前 1
app 内可能自带一套 ssl 库,用的自己内置的证书,所以你在系统里装证书没有用。关键词 ssl pinning 。
想要抓这种包,必须逆向这个 app 屏蔽掉内置的验证才行,很复杂,也有点刑,尤其是银行 app 。。 |
7
Y25tIGxpdmlk 172 天前 1
银行类的 APP 应该都做了证书绑定吧。
SSL Pinning |
8
kasusa 172 天前 1
试试用手机上的抓包软件,基本都可以抓。
|
9
seers 172 天前 via iPhone 1
有可能是 native 在 socket 发包
|
10
xchaoinfo 172 天前 1
补充下,除了 SSL Pinning , 还有可能是 APP 内部直接屏蔽代理设置,这样你中间人攻击的抓包完全失效了。
需要 Frida hook 到相关函数来解决。 另外不只是银行类,目前几乎所有的大厂 APP ,抓包都没有那么容易了。 |
11
ZnductR0MjHvjRQ3 172 天前 1
|
12
kuanat 172 天前 1
这个话题搜 ssl pinning 会有很多信息。
如果抓包的时候 App 看不到相关数据了,这种一般只是简单拒绝走代理,或者拒绝了中间人证书,导致连不上了。如果 App 看到的数据正常,说明有 fallback 机制,多数都是非平台默认的 ssl 实现。 不管哪种方式,常规应对策略基本上是 frida hook 掉类似证书加载、证书验证和代理之类的调用。有比较通用的脚本,支持常见的 ssl 库。 但这样做的前提是应用本身没有混淆,调用的方法名没变过,或者有能力推断出混淆过的名字和地址。混淆一般是通过加壳完成的,除了少数基于 vmp 的方案,大多数都有比较通用的应对思路。 脱壳之后一般还会需要绕过 root/签名检测,拦截客户端异常汇报等等,比起脱壳来说要简单。 非常规的应对策略是类似 eCapture 这种非入侵式的方案,可以绕开证书校验。配合虚拟机效果会更好。 |
14
1018ji 172 天前 1
root 首要,价格也不一定是 http 也可能跟美团一样自建协议通过 ip 地址直接请求
|
15
qwerz 172 天前 1
magisk 安装类似 trust user certs 模块,自动将用户安装的证书移动到系统目录,另外还有证书校验, 找一找 ssl unpinng 之类的模块.如果是 app 自己实现的校验方法,一般用 Frida 去 hook 住.
还有一个基于 ebpf 的抓包工具,无视 ssl,可以试试 https://github.com/gojue/ecapture |
16
Bo0 OP 感谢各位大佬的分享,大家的讨论的内容,对我来说逐渐超纲。
我现在换思路,不使用抓包,改用自动化了。因为我最终目的是想在其他设备定期获取 APP 中的黄金价格。 使用快捷指令 APP 定期截屏识别文本,然后筛选出想要的内容发送到 Webhook 机器人,就能推送给其他设备了。 |
17
Tamamopoi 172 天前 1
ROOT 后参考 #13 的教程,丢到系统根证书就行。
小黄鸟啥的抓包都得把证书这样放,安卓 10+后无法直接修改 system 内容,得用 magisk 插件等实现,也不难的 |