charles 抓包工具

介绍

HTTP的代理工具,支持HTTP和HTTPS代理;支持流量控制(弱网环境测试);支持接口并发;支持重发网络请求;支持断点调试;支持按域名、接口查看报文;支持反向代理;可选择网络类型;可解析AMF协议。

安装

  1. 下载:www.charlesproxy.com/download/
  2. 注册:www.zzzmode.com/mytools/cha...
    • Registered Name:任意输入,点击生成
    • help -> register charles

界面介绍

  1. 主导航栏介绍

2. 请求栏介绍

  • Structure:按照请求域名显示
  • Sequence:按照接口请求时间显示
  1. 请求数据栏介绍
  • overview:请求接口概览信息,比如请求协议、时间、大小。
  • contents:请求内容信息和以不同形式展示的响应内容。

代理配置

访问控制配置

client代理设置

  1. MacOS代理设置
  • 查看charles服务器的ip和端口
  • 设置Http和Https请求时需要转发的代理服务器端口和地址
  1. MacOS快捷代理设置
  • 场景:MacOS客户端和运行的Charles软件是同一台电脑。
  • 操作步骤:打开Charles工具,选择Proxy菜单中的MacOS Proxy。
  1. IOS手机代理配置

https的抓包

charles会拦截设备和服务器之间的HTTPS请求,并在中间插入自己的SSL证书。这样,Charles就可以解密加密的HTTPS通信,并查看其中的内容,然后再重新加密并转发给目标服务器,整个过程对于用户和服务器都是透明的。

但是,为了成功地实施这种中间人攻击,Charles需要在你的设备上安装其自己的根证书。这个根证书充当了一个信任机构,用于签署和验证由Charles生成的SSL证书。

安装Charles的根证书后,你的设备就会信任由Charles生成的SSL证书,这样Charles就能够成功地将自己伪装成目标服务器,并与你的设备进行安全通信,从而拦截和解密HTTPS通信。

  1. 安装证书
  • 打开charles,选择 help->ssl proxy->install charles root certificate

如果MacOS中遇到钥匙串中无法找到Charles证书,并且reset charles root certificate依然无法找到可以尝试手动安装根证书:

  • 查找证书:
sh 复制代码
ll /Library/Keychains/System.keychain /Users/cuiqiaoqiao/Library/Application\ Support/Charles/ca/Charles-proxy-ssl-proxying-certificate.cer
  • 安装证书:
sh 复制代码
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Users/zhuoya/Library/Application\ Support/Charles/ca/Charles-proxy-ssl-proxying-certificate.cer
  1. charles配置https proxy
    • 菜单proxy->ssl proxying setting
    • 勾选enable ssl proxying
    • 添加Host为*,端口为443

IOS 手机证书配置

  • 步骤五:再次回到"通用"页面,选择"关于本机"
  • 步骤六:点击"证书信任设置",启用Charles Proxy CA 证书并确认

Charles流量配置

可以模拟2G、3G、4G网络环境,测试弱网;

Charles breakpoints

可以在请求前编辑请求内容

可以在获取请求结果后编辑响应内容

相关推荐
rannn_1116 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
短剑重铸之日6 小时前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
Dragon Wu7 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
一个有梦有戏的人8 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
爬山算法8 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
独断万古他化8 小时前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
我爱加班、、8 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
一 乐9 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
80530单词突击赢9 小时前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
hdsoft_huge9 小时前
1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
vue.js·spring boot·后端