前面我们发过两篇文章介绍了Charles抓包工具的基本使用,以及如何抓取电脑端的https报文;有兴趣的小伙伴可以去看下两篇文章↓↓↓

①测试必备工具之最强抓包神器 Charles,你会了么?

②测试必备工具之抓包神器 Charles 如何抓取 https 数据包?(点击蓝色链接即可看到)

有很多小伙伴私信问到,Charles该如何抓取手机端的数据报文呢?今天我们就来给大家分享一下Charles抓取手机端数据的方法。

抓取手机http数据包

第一步:开启Charles上的代理

配置端口号,默认为8888,并勾选 “enable transparent HTTP proxying”,如下图所示:




charles 抓手机包unknown charles手机抓包教程_手机端


第二步:手机上配置代理(Android为例)

首先,我们需要确保手机跟电脑处于同一个wifi连接中;然后通过修改手机端的网络,设置手机的代理:


charles 抓手机包unknown charles手机抓包教程_手机端_02


charles 抓手机包unknown charles手机抓包教程_手机端_03


代理服务器是运行Charles的电脑IP地址,端口对应着Charles上的配置的代理端口号。

第三步:Charles上允许代理连接。

此时,手机配置好代理后,访问任意流量都会经过Charles工具,所以Charles工具会弹出如下图所示的提示信息,选择“Allow”,允许即可。


charles 抓手机包unknown charles手机抓包教程_charles 安装 ssl_04


第四步:成功抓取报文

然后手机运行APP,比如柠檬班APP,就可以在Charles上捕获到对应的报文了。


charles 抓手机包unknown charles手机抓包教程_charles 安装 ssl_05


抓取手机端HTTPs报文

刚刚上面讲述的是抓取http的数据包,但是现在很多APP都是用的https协议的,所以怎么去抓取并分析https的协议的数据包呢?

第一步:在Charles上开启SSL代理。

Proxy -> SSL Proxying Settings-->勾选Enable SSL Proxying,点击Add,点击Add,Host设置要抓取的https接口,

Host : * (使用通配符表示检测所有网络请求;建议还是设置单个需要抓取的https host,尽量避免使用 * 通配符)

Port:443


charles 抓手机包unknown charles手机抓包教程_手机端_06


第二步:手机端安装Charles证书(iOS手机为例)

点击SSL Proxying --> Install Charles Root Certificate on a Mobile Device or Remote Browser,会提示你如何在手机端配置代理以及安装证书:


charles 抓手机包unknown charles手机抓包教程_charles抓取https请求_07


如下图所示:手机代理配置192.168.1.189(我电脑的IP地址),端口为8888(Charles配置的代理端口):


charles 抓手机包unknown charles手机抓包教程_charles 怎么抓包不了了_08


手机端浏览器里输入chls.pro/ssl网址,然后允许下载证书;并下载完成后去设置里查看证书;


charles 抓手机包unknown charles手机抓包教程_charles抓取https请求_09


手机设置-->描述文件里找到证书,点击安装并完成:


charles 抓手机包unknown charles手机抓包教程_charles 怎么抓包不了了_10


添加证书信任:在通用-->关于本机--->证书信任设置,勾选信任:


charles 抓手机包unknown charles手机抓包教程_charles抓取https请求_11


致此,Charles就可以愉快的抓取手机端的https的报文啦!

说明:本文为柠檬班Tricy老师原创