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_1113 分钟前
JVM 垃圾回收面试题全解析:从基础到进阶
java·开发语言·jvm·后端·面试
AINative软件工程4 分钟前
LLM 应用的 Observability 三件套:Metrics、Logs、Traces 的生产级接入工程实践
后端·python·架构
geovindu5 分钟前
rust: Simple Factory Pattern(续)
后端·设计模式·rust·简单工厂模式·创建型模式
高频因子挖掘机12 分钟前
股票分钟 K 线为什么需要关注交易时段?——忽略这一点,回测可能从数据层就偏了
后端·github·api
高频因子挖掘机27 分钟前
批量请求和循环请求有什么本质区别?从量化数据管道重新理解 API 请求粒度
后端·github·api
mldong29 分钟前
jeeflow 工作流引擎的四个"我的"菜单,查的是四张不同的表
后端·架构
再吃一根胡萝卜30 分钟前
用 Rust 复刻了掘金的 Markdown 阅读体验,做了个纯阅读器
后端
rannn_1112 小时前
JVM 面试题:类加载过程详解(附高频考点)
java·jvm·后端
程序猿乐锅6 小时前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby