Charles
一、抓包概述
1. 抓包概念
抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全等。下面小编就介绍几种抓包软件。
2. 常见抓包工具
Charles、fiddler、wireShark
测试为什么要学习Charles抓包?
(1)能够使用Charles来分析前后端问题
(2)能够使用Charles模拟弱网测试环境
(3)能够使用Charles的断点构建异常的测试场景
二、Charles简介
1. 什么是Charles
Charles中文名字青花瓷,是一款Http代理服务器和Http监视器,当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客户端来转发时,Charles可以监控这个客户端各个程序所有连接互联网的Http通信。
特点:跨平台、半免费
免费版本:一是启动等待十秒才能启动,二是半小时重启一次
2. Charles工作原理
2.1 原理
截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
2.2 原理图
3. Charles主要功能
(1)支持HTTP/HTTPS代理
(2)支持流量控制
(3)支持接口并发请求
(4)支持重发网络请求,方便后端调试
(5)支持断点调试
(6)支持修改网络请求参数
(7)支持网络请求的截获并动态修改
(8)支持模拟慢速网络
4. Charles优点(相对Fiddler)
(1)Charles能够支持Linux、macOS,fiddler不支持
(2)Charles支持按域名和按接口查看报文,简洁明了
(3)Charles支持反向代理,fiddler不支持
(4)Charles网络限速可选择网络类型,选择3G、4G、5G等
(5)Charles可以解析AMF协议,一般用不到
三、安装与配置
1.Charles安装
(1)官网下载:https://www.charlesproxy.com
(2)双击,下一步即可(傻瓜式安装)
2.Charles组件介绍
主导航栏、抓到的接口、请求内容、响应内容
2.1 主导航栏介绍
2.2 请求栏介绍
3.Charles设置
3.1 代理设置
Proxy → Proxy Settings → 端口号(8888)
Proxy → Accept Control Settings → 勾选
3.2 客户端设置
电脑设置 → 代理服务器 → 手动 127.0.0.1:8888
3.3 手机端设置
(1)同网
(2)打开WiFi → 高级 → 手动设置 → 主机地址(ipconfig):8888
(3)Charles弹框 → deny、allow
(4)手机联网抓包
四、证书安装
1.web证书安装
1.1 安装:
help → SSL Proxying → install charles root certificate → 安装证书、选择“当前用户”、点击下一步 → 选择“将所有证书都存放下列存储”,点击“浏览” → 选择“受信任的根证书颁发机构”,点击“确定” → “下一步” → “完成”
1.2 证书导出
help → SSL Proxying → save → 路径、修改证书名字和后缀
1.3 证书导入
打开浏览器 → 设置 → 安全 → 管理证书 → 导入 → 下一页 → 浏览、保存好证书 → 下一页 → 选择“受信任的根证书颁发机构” → 完成
E浏览器:设置 → Internet选项 → 内容 → 证书 → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储(P) → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。
chrome浏览器:设置 → 管理证书(安全) → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储(P) → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。
2.Chales HTTPS代理配置
证书安装之后发现还是乱码和unknown,需要配置代理
五、Charles常用功能
1. 过滤不必要的网络包
方式一:
选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址。
include:能抓取到的
exclude:不能抓取到的
方式二:
在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://blog.csdn.net, 那么只需要在 Filter 栏中填入 csdn 即可。
注意:通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。
2. 断点替换/修改数据
2.1 方式一:
1.右击接口链接,选择“BreakPoints”
2.在浏览器刷新对应接口的页面
3.此时会自动跳转到Charles并显示出接口请求信息
4.点击“Edit Request”,修改请求信息,点击“Execute”
5.点击“Edit Response”
6.在数据格式兰中选择合适的显示格式,比如“json”
7.修改对应的数据,点击“Execute”
8.回到浏览器查看数据应该为修改之后的response的信息
2.2 方式二:
(1)Proxy → Breakpoint settings...中手动新建/启用某个断点;
要求勾选enable breakpoints之后当下次再有该请求时,会自动进入断点模式
(2)新建断点
(3)刷新浏览器
(4)点击“Edit Request”,修改请求信息,点击“Execute”
(5)查看数据
3.模拟慢网速
(1)Proxy → Throttle Settings...
(2)添加请求 → 勾选 → 选择网速
(3)返回浏览器查看
4.压测服务器
依次点击tools → Repeat Advanced
5.模拟404
(1)Tools → Block List
(2)允许启用黑名单功能,选择接口返回错误的形式(404 或者403),添加接口地址并保存
(3) 选中需要返回404/403的接口,点击【ok】
(4)返回浏览器查看