2021.2.21charles抓包与Mock实战
1、环境准备
- 安装charles Charles安装 21
- 安装mitmproxy mitmproxy 安装 31
1.1. Charles安装
-
windows:官网下载并按照步骤一步步安装即可
-
Mac:官网下载并按照步骤一步步安装即可
-
Linux:
wget -q -O - https://www.charlesproxy.com/packages/apt/PublicKey | sudo apt-key add - sudo sh -c 'echo deb https://www.charlesproxy.com/packages/apt/ charles-proxy main > /etc/apt/sources.list.d/charles.list' sudo apt-get update sudo apt-get install charles-proxy 下载较慢请耐心。。
运行
- Charles是一个收费工具,可以免费试用30天,之后如果没有付费的话,会30分钟自动关闭一次,不影响功能使用。
破解
Registered Name: https://zhile.io
1.2. 安装mitmproxy
- 官方网站
1.2.1 安装
windows 安装
- pip install pipx
- pipx install mitmproxy
- 安装之后需要配置环境变量:安装成功的提示中会给出需要配置的目录,将其配置到
path环境变量中重启cmd即可 - 显示如图即为成功
mac 安装
brew install mitmproxy
1.2.2证书配置
本机证书配置
- https://docs.mitmproxy.org/stable/concepts-certificates/ 41
- 开启 mitmdump 代理
- 访问 mitm.it 安装证书
1. 如果要抓取https的包,就需要安装证书,证书安装三种方法:1. 帮助-->SSL代理-->安装证书 2.帮助-->ssl代理-->保存证书,完了再点击安装 3. 帮助-->ssl代理-->在远程设备或远程浏览器安装charles证书,chls.pro/ssl
2. 如果要抓取HTTPS得请求也需要在charles上设置,可以先都用通配符*,表示抓所有的地址和端口
3. 工具:SwitchyOmega(https://www.cnblogs.com/wukai66/p/12599362.html)
模拟器配置,手机抓包
1.mumu模拟器修改网络设置:设置--WiFi--鼠标左键长按--修改网络--代理--手动--设置服务器主机名和端口号保存即可
2.打开浏览器,输入:chls.pro/ssl, 然后自动开始下载证书(注意有些模拟器有坑,如果未下载证书,进去模拟器的飞行模式开关几次尝试下)
3.证书是否成功安装的验证方法:打开百度刷新,查看charles中是否有数据包
2、掌握的知识点
- 计算机网络基础知识
- Charles环境搭建、证书安装
2.1接口抓包工具
面试考点:TCP协议在传输层,charles工具在应用层(只支持https协议,不支持抓sockt、websocket协议)http协议在应用层
网络层不能抓包
2.2 charles抓包工具的功能
charles将自己设为网络服务的代理服务器,可以抓取http的数据,几乎可以修改请求里的所有内容
http默认端口是80,明文传输,不安全
https默认端口是443,密文传输,若要代理截取数据,需安装证书
3. charles在测试中常见的应用场景
3.1 网络模拟
比如弱网测试,老测试方法:在电梯中、用锡箔纸包裹路由器等
开启throttle setting限流后,点击确定,小乌龟就变成高亮了:设置56kb时就看到数据传输非常慢
3.2 断点
app上的断点设置是比较少的,断点还没处理完,app就会重试3次,所以断点失败;所以可以用rewrite
rewrite
如果想修改所有的数值。可用正则匹配:\d+\.\d+ 勾选使用正则regex
课后作业
- 一般作业:使用 Rewrite 修改股票的名称、价格
- 拔高作业:只修改股票列表内的股票名称、价格