Charles抓包工具
一、简介
Charles是一款代理工具,通过拦截客户端(PC或者手机等终端设备)向后台服务器发送的请求,通过它向服务器发送请求,然后再将服务器返回的响应返回给客户端。通过这个工具可以实现截取请求和请求结果达到分析抓包的目的。
安装
通过Charles官网根据各自系统对应下载应用,傻瓜式的安装即可
二、功能介绍
基础功能介绍
1、设置系统代理
安装完成Charles之后,在没有设置 系统代理
的前置下直接抓包,是抓不到任何信息的。除了一刀切直接设置Charles为系统代理抓取系统所有的请求,也可以手动添加代理,操作如下图,其实效果是一样的,也就是设置了系统代理
系统代理设置完成之后,就可以开始抓包啦。
2、安装证书
抓包之后内容是乱码时,咱们就需要确认是否没有安装证书导致。
- 排查是否有证书
打开Mac电脑上的钥匙串访问
,查看是否有安装Charles证书
- 证书安装
抓取PC端请求,需要安装
install Charles Root Certificate
,安装完成还需要手动设置信任该证书
证书安装完成还是抓取不了HTTPS请求,就需要添加
SSL Proxying Settings
3、抓取HTTPS请求设置-SSL Proxying Settings
设置Host
为*,表示抓取所有域的请求;
设置port
为443,表示抓取HTTPS的请求
设置完成之后,别忘了勾选上,表示启用。再次点击OK。没有乱码就正常了
手机设备抓包
打开Charles代理- Proxy Settings
Port
设置8888
Enable transparent HTTP proxying
勾选上
点击确定
获取PC本地IP- Local IP Address
端上连接Charles代理
端上安装证书
方式一
- 证书下载
- 访问http://chls.pro/ssl 下载证书
- PC端下载证书完成之后,通过adb放到设备上
adb push 证书 sdcard
- 证书安装
- 安卓手机:设置>高级设置>安全隐私>凭据存储
方式二
-
PC端通过
help>SSL Proxying>Save Charles Root Certificate
下载证书完成,保存在本地 -
打开PC命令窗口
-
获取证书信息:
openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem
得到第一行字符串
-
使用获取到的第一行字符串 重命名证书:
mv charles-ssl-proxying-certificate.pem 58915568.0
-
PC连接设备,使用
adb devices
确认是否连接成功
adb root
adb disable-verity
adb reboot
adb devices
adb shell mount -o rw,remount /system
adb push 58915568.0 /system/etc/security/cacerts
- 设备查看证书
Mock
Rewrite
替换请求的任何字段内容,请求头、响应体的某个字段、或者某些字段都可以通过Rewrite
执行替换