fiddler抓安卓7.0以上版本

我在抓取iOS时,安装证书后信任该证书即可抓包调试,但是安卓上就出现Tunnel to…443,这说明没有抓取成功,我们需要从头开始检查有没有问题
在这里插入图片描述

1.查看fiddler设置是否异常

在这里插入图片描述

2.查看是否在同一个局域网

设置代理IP和端口
在这里插入图片描述

3.查看证书

设备:小米pad 4
小米系统:MIUI 10.2
安卓版本:8.1.0

打开 更多设置–系统安全–加密与凭据–信任的凭据–用户,删除旧证书
打开浏览器,输入http://192.168.1.225:8888,点击FiddlerRoot certificate下载证书
打开文件夹,进入Download文件夹,点击FiddlerRoot.cer安装证书
重启fiddler,重连WiFi

但是发现没有用,步骤是正确的,最后发现是安卓版本问题,因为我的设备是安卓系统 7.0 以上的,里面有个 SSL Pinning,SSL Pinning是一种防止中间人攻击(MITM)的技术,主要的机制是在客户端发起请求->收到服务器发来的证书这一步之后,对收到的证书进行校验,如果收到的证书不被客户端所信任,就直接断开连接不继续请求。

所以在遇到对关键请求开启了SSL Pinning的APP时,我们抓包就只能看到APP上提示无法连接网络或者请求失败之类的提示;而在抓包工具的界面上,要么就只能是看到一排CONNECT请求,获取到了证书后却没有后续了,要么就只有一些无关的请求,找不到自己想要的那个接口。

这个问题是怎么产生的呢?是这样,当我们使用抓包工具抓包时,抓包工具在拦截了服务端返回的内容并重发给客户端的时候使用的证书并不是服务端原来的证书,而是抓包工具自己的,抓包工具自己的证书并不是APP开发者设定的服务端原本的证书,于是就构成了中间人攻击,触发SSL Pinning的机制导致连接被中断,所以我们无法直接抓到包。

4.使用兼容Xposed的框架+JustTrustMe

这个方案使用的是JustTrustMe这个Xposed模块,它所做的事情就是将各种已知的的HTTP请求库中用于校验证书的API都进行Hook,使无论是否是可信证书的情况,校验结果返回都为正常状态,从而实现绕过证书检查的效果。

百度云盘VirtualXposed_0.18.2和JustTrustMe下载地址:
https://pan.baidu.com/s/1S6qHw-1S80rpMMi5v-xL2A
mcgt

在这里插入图片描述

1、安装后打开VirtualXposed,点击添加应用,选择被测应用JustTrustMe(不勾选JustTrustMe在模块管理中无法检测到Xposed),点击安装
2、点击模块管理,勾选JustTrustMe
3、点击重启
4、点击返回按钮,向上滑动页面,点击一克隆的被测应用
5、开始抓包
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36562656/article/details/109196342