为什么安卓7.0以上的系统,微信7.0版本以上无法抓取https包?
- 原因:1.安卓7.0之后,提高了系统安全性。APP默认不信任用户域的证书 2.微信7.0以后更新了安全机制,加入了防止中间人attack的机制详情可搜索ssl pinning 了解防止中间人attack
SSL Pinning
https的网站使用使用伪证书可以抓到,但app同样方式抓取不到,是因为大概率使用SSL Pinning ,即证书绑定 客户端在收到服务器的证书后,对该证书进行强校验,验证该证书是不是客户端承认的证书,如果不是,则直接断开连接。 APP里面就不一样,APP是HTTPS的服务提供方自己开发的客户端,开发者可以先将自己服务器的证书打包内置到自己的APP中,或者将证书签名内置到APP中,当客户端在请求服务器建立连接期间收到服务器证书后,先使用内置的证书信息校验一下服务器证书是否合法,如果不合法,直接断开。
故此次实现抓包的原理为JustTrustMe插件,以钩子的原理来避过ssl pinning,需要准备的工具为:fiddler、VirtualXposed、JustTrustMe等。具体步骤如下
1.安装virtualXpoed
- 下载地址
- 说明: 1.此处下载0.18版本是为安装微信app做铺垫,微信是32位 2.浏览器下载.apk文件提示virus并删除,解决办法:打开windows安全中心,virus和威胁防护,"virus和威胁防护设置"关闭即可
2.安装JustTrustMe
- 下载地址
- JustTrustMe 是一个用来禁用、绕过 SSL 证书检查的基于 Xposed 模块。JustTrustMe 是将 APK 中所有用于校验 SSL 证书的 API 都进行了 Hook,从而绕过证书检查。
3.virtualXpoed 克隆微信APP & JustTrustMe
- 在xp设置-模块管理-勾选JustTrustMe
然后,就可以使用fiddler抓取xp微信app发起的https 请求
标签:JustTrustMe,证书,微信,APP,7.0,Https,服务器,Anroid7.0 From: https://blog.51cto.com/u_15610015/6318836