三、Charles抓包工具
标题:
Charles介绍基本信息
Charles:中文名叫青花瓷,它是一款基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
Charles下载安装
官方下载地址:https://www.charlesproxy.com/
Charles使用操作开启代理
- 设置开启HTTP代理
- 最后在Proxy Settings中确定(OK)即可
- 打开浏览器访问地址直接可以抓包了
Charles断点设置
-
绕过界面(拦截请求修改),模拟请求做后台接口测试。步骤如下:
-
打开浏览器输入待测地址
-
在Charles的 Proxy-->Breakpoints
- 勾选: Enable Breakpoints
- 点击:Add 添加设置断点的URL信息【protocol、host、request、response】
- 确认:设置完成后OK确认
-
在浏览器模拟用户进行操作测试
-
Charles开始抓取到当前数据包并 闪烁 提示
-
在Charles的 Breakpoints 修改请求的数据,然后点击 Execute
-
在Charles的 Breakpoints修改响应的数据,然后点击 Execute 【可以不用修改响应】
-
弹出的断点数据包全部一路 Execute 执行完毕,最后点击关闭断点按钮
-
添加断点的URL地址
- 断点后修改数据
- 执行请求后修改响应
- 注意:如果不想修改响应,直接点击 Execute 按钮一路完成
- 关闭断点功能
Charles过滤设置
只显示指定的URL的数据报文(包)
- 设置过滤
- 添加需要显示的URL相关信息
- 确定之后在Recording Settings确定OK即可
- 打开被测浏览器,输入已过滤的URL,在Charles中直接显示该数据包
Charles弱网测试
模拟网速不好的情况下访问服务器的测试
- 弱网模拟开关
- 同一数据包对比
- 测试完毕后关闭弱网开关
移动端抓包
注意事项:
-
移动端抓包的前提,代理服务器必须和移动端设备在同一个局域网
-
一般通过连接同一个WiFi解决(安装了Charles代码的电脑,手机接入同一热点即可)
-
手机端WiFi设置
- 勾选保存后PC端允许接入(Allow)
- 操作手机app显示抓包信息
常见问题
Charles抓包出现unknown
如果抓包出现unknown一般是https的数据包,需要安装ssl安全证书
- 先在安装了Charles的电脑端安装Charles根证书
- 再在手机端安装Charles的根证书
电脑安装证书
- 打开Charles的help,安装根证书
- 选择“安装证书”
- 选择本地计算机
- 选择如下“浏览”
- 选择安装位置
- 最后提示导入成功即可,关闭Charles重新打开查看验证
手机端安装
注意:
-
移动端设备如果是Android 7.0及以上版本,需要root权限安装Charles证书
-
移动端设备如果是iOS 10.0及以上版本,需要在 设置-通用-关于 里面开启Charles证书信任
- 如果iOS手机设置证书信任后不生效,可以重启手机重试一遍
-
Charles开启移动端证书安装
- 手机浏览器输入: http://chls.pro/ssl
- 下载Charles证书 charles-proxy-ssl-proxying-certificate.pem
- Android手机需要修改Charles证书后缀为.crt charles-proxy-ssl-proxying- certificate.crt
- 点击修改后的文件,命名证书名后直接安装,如下截图
- 下载Charles证书 charles-proxy-ssl-proxying-certificate.pem
- iOS系统的手机下载后直接安装
- iOS 10及以上版本安装完成后,需要在 设置-->通用-->关于 中信任证书,否则Charles会出现如下错误
- 打开手机应用程序查看https数据包
手机设置代理后无法访问外网
手机WiFi开启代理后,手机端无法访问外网
- 手机设置访问空列表(白名单)