1
locoz 2019-01-20 20:29:56 +08:00 via Android 2
之前写的,看看能不能帮上你。https://zhuanlan.zhihu.com/p/46433599
|
2
7lsu 2019-01-20 20:51:45 +08:00
是指抓不到吗?安卓 7.0+的话要配置系统证书才行
|
3
letitbesqzr 2019-01-20 22:23:27 +08:00 4
我猜楼主是说的如何绕过 android 7.0+ 以后的 SSL Pinning 吧。
比如微信 7.0 在 android 7.0+以上的版本,就会有 SSL Pinning, 只信任系统内置的证书。 "客户端在收到服务器的证书后,对该证书进行强校验,验证该证书是不是客户端承认的证书,如果不是,则直接断开连接。" 可以尝试以下几个方案: 1. xposed 及其插件 JustTrustMe (可以配合 virtualxposed) JustTrustMe 是一个用来禁用、绕过 SSL 证书检查的基于 Xposed 模块。JustTrustMe 是将 APK 中所有用于校验 SSL 证书的 API 都进行了 Hook,从而绕过证书检查。 2. 将证书安装到系统证书中(需要 root ) 系统证书的目录是:/system/etc/security/cacerts/ 每个证书的命名规则为:<Certificate_Hash>.<Number> Certificate_Hash 表示证书文件的 hash 值,Number 是为了防止证书文件的 hash 值一致而增加的后缀; 证书的 hash 值可以由命令计算出来,在终端输入 openssl x509 -subject_hash_old -in <Certificate_File>,其中 Certificate_File 为证书路径,将证书重命名为 hash.0 放入系统证书目录,之后你就可以正常抓包了。 3. VirtualApp (最简单的) 大概的介绍,VirtualApp 是一个开源的 Android App 虚拟化引擎,允许在其中创建虚拟空间,并在这个虚拟空间中运行其他应用。 我不是很清楚这个东西的原理,看介绍感觉应该是 VirtualApp 代理运行了程序,然而代理程序后并没有带 SSL Pinning 的功能? 实际测试,VirtualApp 直接把微信 7.0 在里面运行,直接按照以前的方法就可以进行抓包。 |
4
raphael008 2019-01-21 12:38:23 +08:00
建议用备用手机号注册账号去抓,某些 APP 会针对破解 SSL Pinning 封账号的,比如:饿了么🤣
|
5
coolmint 2019-01-21 12:41:36 +08:00
@letitbesqzr 感谢,试试那个 xposed 模块去,方法 2 我之前直接用复制粘贴的形式失败了,但我同事成功了,看来还是我想的太简单了
|
6
iPhone11 2022-11-26 18:23:27 +08:00
@locoz 大佬在知乎看到你回答抓包相关问题有说到 "知道原理之后其实解决办法也很容易就能想到,就是你可以直接拆包找到客户端证书然后给代理服务器用上,这样你这边发出去的包自然就会是符合要求的了",请问这个"客户端证书然后给代理服务器用上"这个怎么操作呢,我 Fiddler 和 charles 都反复查看 ssl 证书相关都是默认生成的,无法自定义或导入拆包找到客户端的证书
我已经通过 Xposed 模块。JustTrustMe 能抓到大部分数据但是登录会不成功,已成功提取 app 的证书 就是不知道如何在抓包软件中使用 |