文章总结: Charles是一款网络抓包分析工具,用于监控和调试客户端与服务器之间的网络通信。本文介绍了Charles的安装步骤、界面布局和常用功能,包括抓取HTTPS请求、设置断点修改请求和响应等操作。文章还详细说明了Charles的常见工具如断点、远程映射、本地映射、重写和限速等功能及其应用场景,为网络安全测试和调试提供了实用指导。
综合评分: 84
文章分类: WEB安全,安全工具,网络安全
Charles安装及基本用法
原创
dcnb
Web安全基础与实践
2025年12月9日 18:00
广东
Charles是一款网络抓包分析工具,通常用于监控和调试客户端与服务器之间的网络通信。
Charles提供一个直观的界面,允许用户查看、记录和修改所有传入和传出的HTTP/HTTPS请求与响应。用户能够分析请求的详细内容,包括地址、方法、头部信息以及传输数据,从而协助进行应用性能优化、数据校验以及接口安全测试等多种开发与调试任务。
1、安装
以Windows10攻击机中安装Charles为例进行演示。
首先访问Charles的下载页面(链接:https://www.charlesproxy.com/),如图1所示。点击“Windows_x86_64(msi)”下载适用于win系统的安装包。接着打开下载好的文件所在的文件夹,双击开始安装,如图2所示。之后,一路点击next,安装过程如图3和图4所示。
图1 Charles 官网下载界面
图2 下载好的文件
图3 安装界面
图4 选择安装位置
最后点击 install 安装即可,如图5所示。
图5 点击安装即可
随后,可以将Charles发送快捷方式在桌面,如图6所示。至此,完成Charles的安装。
图6 创建桌面快捷方式
2、界面介绍
打开刚才安装Charles 的文件夹,双击Charles.exe,进入Charles的主界面,,如图7所示。
图7 安装位置
打开 Charles 可以看到主界面,如图8所示,其中有两种视图模式,Structure 和Sequence 模式,分别如图9和图10所示,一般情况下使用Structure,方便查看域名分类。
图8 主界面
图9 Structure 视图模式
图10 Sequence 视图模式
图11 菜单栏
上方菜单栏从左到右分别是:
(1)扫帚状的图标:点击后会清除左侧会话列表中当前已捕获的所有网络请求。这在你想开始一次全新的抓包测试时很有用。
(2)红色圆点 (录制中):如图中所示,这个按键是按下去的,表示Charles当前正在录制网络请求。再次点击它,图标会弹起,变为灰色,这时Charles会停止录制新的网络请求。
(3)乌龟图标: 限速网络开关,打开会模拟慢速网络环境。
(4)红色的八角形: 断点。点击启用后,当Charles捕获到你预先设置了断点的请求(或响应)时,会暂停该请求,允许你在请求发送到服务器前(或响应返回给浏览器前)修改请求/响应的内容。
(5)铅笔 (撰写/编辑): Compose(撰写) 功能。允许你手动创建(或编辑一个已存在的请求)并发送一个新的网络请求,可以用于构造一个网络请求。
(6)循环箭头 (重复): “Repeat” (重复) 功能。点击后会立刻重新发送你在左侧会话列表中选中的那个请求。
(7)绿色对勾 (验证):功能: “Validate” (验证) 功能。Charles会使用W3C的验证服务来检查选中请求的响应内容(例如HTML、CSS、JSON等)是否存在语法错误。
3、常用操作
3.1抓取HTTPS 请求(SSL代理设置)
(1) 安装Charles root 证书
在 Charles 菜单栏中选择 Help > SSL Proxying > Install Charles Root Certificate。 如图12所示。
图12 选择安装root证书
在弹出的“证书”窗口,点击“安装证书…” 选择“当前用户”,如图13和14所示。
图13 点击安装证书
图14 选择为当前用户安装
在“证书存储”,选择“将所有的证书都放入下列存储”,然后点击“浏览”,选择“受信任的根证书颁发机构”,然后点击“确认”完成导入,如图15和图16所示。
图15 选择将所有的证书都放入下列存储
图16 选择受信任的根证书颁发机构
图17 点击完成
(2) 添加要解密的域名
在Charles菜单栏中选择Proxy > SSL Proxying SEttings…,如图18所示。
图18 点击SSL 设置
在弹出的窗口,勾选 Enable SSL Proxying ,如图19所示。
图19 添加要解密的域名
在Include 列表中,点击Add ,填入要解密的域名,比如*.* (表示匹配所有的域名和端口),如图20所示。
图20 设置匹配全部域名
最后可以看见解密后的请求内容,如图21所示。
图21 可以看到解密后的请求
3.2设置断点,然后修改请求,并发送
(1) 在左侧的会话中,选择一个要拦截的请求,右键选择BreakPoints,同时确保上面的菜单栏中的红色的八角形断点图标 启用状态,如图22所示。
图22 右键开启断点
(2) 在浏览器中重新触发该请求,然后Charles显示拦截成功的界面,可以切换到Edit Request ,可以修改请求(在实际的web安全应用中,可能可以用于构造一个webshell或者上传带有恶意代码的文件),然后点击 Execute 发送请求,如图23所示。
图23 修改要发送的请求
(3) 请求发送后,Charles会自动拦截返回请求,可以切换到Edit Response 标签页,修改服务器返回的数据,修改后,浏览器才能收到被修改过的响应,如图24所示。
图24 修改返回的响应
4、常见的工具和功能
Charles常见的工具和功能如表1所示。
表1 常用的工具功能Nmap
| | | | |
| — | — | — | — |
| 工具名称 | 菜单路径 | 主要功能 | 常用场景 |
| Breakpoints (断点) | Proxy > Breakpoint Settings... | 拦截并手动修改特定的请求或响应。 | 1. 测试“修改订单金额”等越权操作。 2. 临时修改服务器返回的数据以测试前端UI。 |
| Map Remote (远程映射) | Tools > Map Remote... | 将一个网络请求重定向到另一个地址或服务器。 | 1. 将线上的JS/CSS文件请求映射到本地开发服务器(如http://localhost:8080)。 2. 切换测试环境和生产环境的 API 地址。 |
| Map Local (本地映射) | Tools > Map Local... | 将一个网络请求重定向到你本地电脑上的一个文件。 | 1. 将线上的JS/CSS文件映射到本地文件,实现**“所改即所得”**的调试。 2. 用本地的JSON文件来 Mock 接口数据。 |
| Rewrite (重写) | Tools > Rewrite... | 自动批量修改请求或响应的特定部分(如Headers 或Body)。 | 1. 自动为所有请求添加一个特定的Header(如User-Agent)。 2. 自动修改响应体中的某个JSON字段。 |
| Throttling (限速) | Proxy > Throttle Settings... | 模拟慢速或不稳定的网络环境。 | 测试应用在3G或弱WiFi环境下的加载表现和容错能力。 |
本文由李勇钦同学投稿。
- END –
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Web安全基础与实践 dcnb《Charles安装及基本用法》