景:

想要针对手机抓包玩耍一下,charles配置完证书等操作后,结果发现除了游览器能够正常抓包外,绝大部分流行的app都无法抓包[少数主流可以],许多包抓下来出现如图效果。全都是红色的Connection 200,显示SSL 问题[实际上证书都已配好]

原因:

原理:charles 抓包原理实际上是 https 中间人攻击,只不过我们手动安装并信任了这个中间人的证书。

问题:游览器默认是信任这个证书的,但app不一定啊,app客户端完全可以先验证证书是不是自己公司的,发现不是直接拒绝并停止网络请求[这种技术叫做 SSL Pining,防止中间人攻击,可搜],这就是为什么抓包时很多app看起来像是连不上网的原因。

解决方案[安卓]:

步骤1.

使用一些黑科技框架的前提是,需要root才行。

为了保护自己的手机安全,故在手机上安装一个虚拟机,大名鼎鼎的VirtualXposed

这里下载并安装到手机就行了。使用上只有两个操作,上滑是查看虚拟机内安装的app,点按钮是打开设置。

步骤2.

下载 JustTrustMe,也是在右边的 release 那里有下载。注意,这里先安装到自己手机上,再打开 VirtualXposed 使用"添加应用"添加到虚拟机里。

步骤3.

把想抓包的app像步骤2那样添加到虚拟机里,然后在虚拟机里打开软件,这时候再看抓包软件的记录,就不再是红色的Connection 200 了。这里我体验了拼多多、B站等几个主流app,完美抓到。当然,这里只能抓http/https的,至于 webSocket 就不行啦。

发表评论

邮箱地址不会被公开。 必填项已用*标注