SSL Pinning 技术可以有效阻止 MitM 攻击. 如果使用 MitM 方式抓取使用了 SSL Pinning 的请求, 所有请求都会断开, 不能正常完成请求.
但我今天想抓去某 app(iOS 下, 第三方微博客户端)的请求, 打开任意抓包攻击, 抓包工具一干二净, 一点请求都没有. 使用的抓包工具有 HTTP Catcher
, Thor
, Charles
等都无效, 而且所有请求都能在 app 里正常完成.
所以它是如何实现的? 以及还有哪些方法可以防止抓包?
1
caesar223334 2020-11-20 16:55:16 +08:00
内置个 VPN [doge]
|
2
yaphets666 2020-11-20 17:01:06 +08:00
请求走的不是 HTTP 协议
|
3
FaiChou OP @yaphets666 #2 应用层常用的就是 HTTP/HTTPS 协议吧? 一个第三方微博客户端(vvebo)难道还要自建通信协议(server/client)去来防范抓包吗? 我在学习研究.. 本身也是 VVebo 的 pro 用户, 本想将微博的热搜列表加一个过滤功能(使用⭕️X 的脚本功能)
|
4
yaphets666 2020-11-20 17:29:11 +08:00
@FaiChou 你在 v2 搜搜抓包的帖子 我记得有人说过
|
5
knightdf 2020-11-20 17:29:46 +08:00
我倒是想知道 APP 请求的签名算法咋解
|
6
weixiangzhe 2020-11-20 18:59:26 +08:00
app 里可以不走 http 代理的吧,银行类支付宝 微信都不走 http 代理
|
7
learningman 2020-11-20 19:08:30 +08:00 via Android
http 代理本来就是尊重,又不是强制。。。
|
8
yushiro 2020-11-20 19:15:23 +08:00 via iPhone
ios 的 NE 框架,有 3 种模式,具体本站你可以搜一下,曾经有个作者来推广过。
https://www.v2ex.com/t/715477#reply47 |
9
by73 2020-11-20 20:56:30 +08:00
感觉多数都是 SSL Pinning,导致抓包工具不是没用,只是单纯的解不出 TLS 协议。iOS 不太清楚,Android 现在已经有 User CA 了,开发者可以选择只信任某些证书,而不是所有系统根下的;当然可以强行使用旧版 Android 来绕过这个限制,不过也只是临时方案。
当然 Android 如果有 root 权限,可以借助 xposed 来拦截部分用 JSSE 的应用,之类的 = = |
10
FaiChou OP 刚下载体验了下, 果然能抓到 app, 我再用其他的抓包, 就抓不到. 有空研究下.
https://tva1.sinaimg.cn/large/0081Kckwly1gkw0jkpsy8j30z60u01ip.jpg |
11
FaiChou OP 刚下载体验了下 https://www.v2ex.com/t/715477#reply48 可以抓包
|
12
DoctorCat 2020-11-21 00:09:23 +08:00
自定义协议,使用二进制压缩编码传输。抓到也无法简单的分析出来,只能苦心逆向 APP
|
13
levelworm 2020-11-21 01:12:42 +08:00
同问如何规避 SSL Pinning,是不是只能反编译然后修改函数。。。
|
14
learningman 2020-11-21 01:14:16 +08:00 via Android 1
@levelworm 自己维护一个 CA 包,自己实现部分的 SSL 校验
|
16
cheng6563 2020-11-22 03:31:23 +08:00 via Android
用客户端证书,让服务端验证。客户端证书是可以自签的。
|