Charles抓包

1,508 阅读2分钟

背景

想获取移动端的数据包。

环境

pc操作系统:macOS Big Sur
移动端机型:iphoneX 移动端IOS版本:13.6
抓包软件:Charles v4.6.1

操作步骤

第一步:统一网络环境

手机和pc必须连接同一个wifi,好处于同一个网络内。

第二步:Charles设置代理

开启Charles的代理,并设置代理端口
1、Proxy -> Proxy Settings image.png

2、端口默认为8888,也可以改
3、勾选Support HTTP/2 和 Enable transparent Http proxying

截屏2021-03-21 下午9.22.39.png

第二步:手机设置代理

获取pc和手机的ip地址,并给手机配置pc作为代理。
1、找到当前连接的无线网,获取手机的ip地址:192.168.1.9,点击最下面HTTP代理

image.png 2、网络适配器中获取pc的ip地址为192.168.1.8

截屏2021-03-21 下午10.02.05.png

3、配置代理,服务器为地址填上一步查到的pc的ip,端口填Charles代理的端口

image.png

4、有的手机可能还得重新连下无线网,并确认一下代理是不是配置好了。

第三步:Charles添加手机白名单

1、Proxy -> Access Control Settings

image.png

2、Add -> 填入手机的ip地址 -> OK image.png


到这,Charles就已经可以抓到手机请求的数据包了,但是有个问题,针对Https协议抓到的数据包是加密的,看不到明文,比如下面:

image.png

适配HTTPS

第一步:pc上安装ssl证书

1、Help -> SSL Proxying -> Install Charles Root Certificate image.png 会自动打开钥匙串,需要输入pc的登陆密码。
2、钥匙串中找到Charles Proxy的证书,双击,设置始终信任 截屏2021-03-21 下午10.18.36.png 截屏2021-03-21 下午10.19.30.png

第二步:移动端安装ssl证书

1、Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Devicer or Remote Browser image.png

截屏2021-03-21 下午10.23.58.png Charles会给提示,需要用手机访问:chls.pro/ssl 获取ssl证书。

2、手机浏览器访问chls.pro/ssl 会自动下载证书,点允许,然后点关闭 image.png

image.png

3、手机设置 -> 已下载描述符文件 -> 安装 -> 完成

image.png

image.png

4、手机设置 -> 通用 -> 关于本机 -> 证书信任设置
针对根证书启用完全信任 image.png

第三步:Charles设置SSL代理

1、Proxy -> SSL Proxying Settings 截屏2021-03-21 下午10.34.54.png 2、先勾选Enable SSL Proxying 3、Include下Add,Host配置*,Port配置443 4、OK 截屏2021-03-21 下午10.35.38.png 5、重启下Charles


测试

抓到明文了,搞定。 image.png

踩坑

1、抓包返回HTTP/1.1 200 Connection established
偶尔有几个不印象的话就不用管,如果全都是返回这个可能就是ssl证书的问题,可能是失效了,本人遇到过一次,表现为:登陆微博后,点击我,加载不出任何内容。重装手机端的ssl证书后解决。

截屏2021-03-21 下午10.40.41.png