Charles抓包工具-笔记

摘要

概念:

Charles是一款基于 HTTP 协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果来达到分析抓包的目的。

功能:

Charles 是一个功能全面的抓包工具,适用于各种网络调试和优化场景。

它的强大功能如 HTTPS 解密、断点调试和带宽模拟,使其成为开发者调试网络请求和分析问题的利器,但在使用时需注意合法合规性。

代理配置:

macOS:自动开启 Charles 代理本地IP

image.png

移动端:

如果手机和电脑不是同一个域名,需要配置一下 Charles 的 Access Control Setting,里面填一下对应的IP地址。

image.png


HTTPS证书配置:

目的:实现 Charles 能够解密 HTTPS 内容

客户端配置步骤:

1-下载如下的证书(记得配置下信任证书,否则配置无效)

image.png

2-配置 Charles( “proxy” ->“SSL proxying setting”),加一个 403 端口即可

移动端见下方笔记


Charles抓包实战

  • Https抓包
  • 弱网测试
  • 断点调试

Charles 工具简介

概念

Charles中文名叫青花瓷,它是一款基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。



核心功能

  1. 抓取 HTTP 和 HTTPS 请求
    • 能够捕获和记录所有通过代理发送的 HTTP/HTTPS 请求和响应。
  2. 数据分析
    • 解析和展示请求头、响应头、Cookie、Body 数据等,支持 JSON、XML等内容解析。
  3. 流量控制
    • 可以实现弱网环境的测试
  4. 支持接口并发请求
    • 实现并发请求的压力测试
  5. 请求修改和重发
    • 修改请求参数(如 URL、Header、Body)并重发,用于验证接口不同场景的行为。
  6. 断点调试
    • 设置请求或响应的断点,手动修改数据后继续执行,模拟不同的服务器响应或客户端行为。
  7. SSL 解密
    • 解密 HTTPS 流量,查看加密请求和响应的详细内容。
  8. 带宽模拟
    • 模拟不同的网络带宽条件(如慢速 3G、4G 等),测试应用在不同网络环境下的表现。
  9. 重定向与重写规则
    • 设置规则修改请求的 URL、路径或参数,用于测试本地开发或特定接口。
  10. 导出和共享数据
    • 支持抓包记录的导出和共享,方便团队协作。


使用场景

  1. 接口调试
    • 开发者可以查看请求参数是否正确,响应数据是否符合预期。
  2. 问题排查
    • 分析应用中的网络问题(如请求超时、响应慢、接口错误)。
  3. 前后端联调
    • 前端通过 Charles 查看后端接口返回的数据,调试接口对接问题。
  4. 移动应用抓包
    • 配置手机代理抓包,调试移动端网络请求。
  5. 模拟攻击与测试
    • 修改请求参数,测试服务器对异常输入的处理能力。


工作原理

image.png

前置步骤:

1、需要运行Charles并配置代理

2、在客户端上面需要配置代理

步骤:

1、由客户端发送请求

2、Charles接收 再发送给服务端

3、服务端返回请求结果给Charles

4、由Charles转发给客户端



Charles 优缺点

优点

  1. 功能强大:支持 HTTP/HTTPS 解密、断点调试、流量修改等高级功能。
  2. 跨平台:支持多个操作系统。
  3. 直观界面:可视化操作,易于上手。
  4. 插件扩展:支持规则自定义和自动化操作。

缺点

  1. 收费软件:免费试用有功能和时间限制。
  2. 证书安装复杂:特别是移动端 HTTPS 抓包时需要手动信任证书。
  3. 性能开销:对高频流量抓包可能会增加系统负担。

注意事项

  1. 法律与隐私:Charles 只能用于合法的抓包场景,不得用于窃取敏感信息或侵犯隐私。
  2. HTTPS 安全:Charles 的 SSL 解密功能会破坏 HTTPS 的安全性,仅在必要时启用,并妥善保管证书。

对比Fiddler的优点:

  • Charles能够支持linux、MacOs
  • Charles支持按域名和按接口查看报文,简洁明了
  • Charles支持反向代理
  • Charles网络限速可选择网络类型
  • Charles可以解析AMF协议



Charles 抓包配置

安装 Charles

  • 从官网(https://www.charlesproxy.com)下载并安装。
  • 支持 Windows、macOS 和 Linux。

组件介绍

image.png

主导航栏介绍

image.png

组件介绍

image.png

请求数据栏介绍

image.png



代理设置

image.png

桌面应用抓包

Charles 默认监听本机的 8888 端口,浏览器或应用需将代理服务器指向 127.0.0.1:8888

移动端抓包

  • 将手机连接到与 Charles 所在主机相同的 Wi-Fi。
  • 配置手机的 HTTP/HTTPS 代理为 Charles 的地址和端口。


访问控制

配置 Proxy 下的 Access Control Settings,从而允许对应 IP 实现通过 Charles 的代理访问

image.png


MacOS 代理设置

**注意:**Charles和客户端是同一台电脑的话,默认情况下电脑的代理已经设置完成,无需配置

image.png


如果Charles和客户端不是同一台电脑的话,具体配置如下:

1-网络配置:

image.png

2-显示当前电脑的IP地址:

image.png

3-配置网页代理和安全网页代理:192.xxx.3.45:7777

image.png



iOS手机 代理设置

移动端配置需要移动端和Charles同时配置

移动端配置:

1、在iOS手机中选择“设置”-“无线局域网”

2、点击已连接的无线网络名称

3、在HTTP代理的配置代理中选择“手动”

4、输入服务器IP地址及端点,点击“存储”

image.png

Charles配置:

如果手机和电脑不是同一个域名,需要配置一下 Charles 的 Access Control Setting,里面填一下对应的IP地址。

image.png




Charles 抓包实战

https抓包

https会加密内容:

image.png

**解决方案:**安装SSL证书

步骤一:在Charles窗口中点击菜单 “proxy” ->“SSL proxying setting”

  • 配置一个443端口

image.png

步骤二:在打开的设置窗口中勾选“Enable SSL Proxying”

步骤三:点击“OK”。

image.png


MacOS 证书配置

步骤一:打开 Charles,选择“Help”->“SSL Proxy”->“Install Charles Root Certificate”

image.png


iOS 证书配置

在电脑上运行Charles,且IOS手机设置好代理,在浏览器中地址栏输入:http://charlesproxy.com/getssl

image.png

image.png



弱网测试

步骤一:在Charles窗口中点击菜单“Proxy”->“Throttle Setting”

步骤二:在打开的设置窗口中勾选“Enable Throttling”

步骤三:在“Throttle preset”下拉框中选择对应的网络类型

步骤四:点击“OK”

image.png



断点调试

**作用:**用来构建异常的测试场景

1、右击接口链接,选择“Breakpoints”

image.png

2、在浏览器刷新对应接口的页面

3、此时会自动跳转到Charles并显示出接口请求信息

4、点击“Edit Request”,修改请求的信息,

点击 “Execute”

Case:

场景一:在人事管理系统中增加角色时,把角色名设置为空,然后请求到服务器

中间断点处理:把角色名设置为空

image.png

返回查看页面:新增字段为空,很明显不符合规定,应该找后端进行修改

image.png

场景二:针对查询员工接口请求时,修改返回数据success=false,code=999, message=操作失败

结果:页面显示为空




参考

  • 软件测试教程Charles抓包工具测试实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言练习.if.else语句.strstr

今天在做题之前&#xff0c;先介绍一下&#xff0c;新学到的库函数strstr 想要使用它&#xff0c;要先给它一个头文件<string.h> char *strstr(const char*str1,const char*str2); 首先&#xff1a;1.strstr的返回值是char&#xff0c;字符类型的。 2.两个实参&#xff…

WebRTC音视频同步原理与实现详解(上)

第一章、RTP时间戳与NTP时间戳 1.1 RTP时间戳 时间戳&#xff0c;用来定义媒体负载数据的采样时刻&#xff0c;从单调线性递增的时钟中获取&#xff0c;时钟的精度由 RTP 负载数据的采样频率决定。 音频和视频的采样频率是不一样的&#xff0c;一般音频的采样频率有 8KHz、…

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…

详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案

本文旨在深入探讨xinput1_3.dll这一动态链接库文件。首先介绍其在计算机系统中的功能和作用&#xff0c;特别是在游戏和输入设备交互方面的重要性。然后分析在使用过程中可能出现的诸如文件丢失、版本不兼容等问题&#xff0c;并提出相应的解决方案&#xff0c;包括重新安装相关…

Ubuntu,openEuler,MySql安装

文章目录 Ubuntu什么是Ubuntu概述Ubuntu版本简介桌面版服务器版 部署系统新建虚拟机安装系统部署后的设置设置root密码关闭防火墙启用允许root进行ssh安装所需软件制作快照 网络配置Netplan概述配置详解配置文件DHCP静态IP设置 软件安装方法apt安装软件作用常用命令配置apt源 d…

大数据实验4-HBase

一、实验目的 阐述HBase在Hadoop体系结构中的角色&#xff1b;能够掌握HBase的安装和配置方法熟练使用HBase操作常用的Shell命令&#xff1b; 二、实验要求 学习HBase的安装步骤&#xff0c;并掌握HBase的基本操作命令的使用&#xff1b; 三、实验平台 操作系统&#xff1…

docker pull命令拉取镜像失败的解决方案

docker pull命令拉取镜像失败的解决方案 简介&#xff1a; docker pull命令拉取镜像失败的解决方案 docker pull命令拉取镜像失败的解决方案 一、执行docker pull命令&#xff0c;拉取镜像失败 报错信息&#xff1a;error pulling image configuration: Get https://produc…

qt+opengl 三维物体加入摄像机

1 在前几期的文章中&#xff0c;我们已经实现了三维正方体的显示了&#xff0c;那我们来实现让物体的由远及近&#xff0c;和由近及远。这里我们需要了解一个概念摄像机。 1.1 摄像机定义&#xff1a;在世界空间中位置、观察方向、指向右侧向量、指向上方的向量。如下图所示: …

安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!

在生死时速的紧急救援战场上&#xff0c;每一秒都至关重要&#xff01;随着科技的发展&#xff0c;增强现实&#xff08;AR&#xff09;技术正在逐步渗透到医疗健康领域&#xff0c;改变着传统的医疗服务模式。 安宝特AR远程协助解决方案&#xff0c;凭借其先进的技术支持和创新…

生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验

PAMAP2数据集是一个包含丰富身体活动信息的数据集&#xff0c;它为我们提供了一个理想的平台来开发和测试HAR模型。本文将从数据集的基本介绍开始&#xff0c;逐步引导大家通过数据分割、预处理、模型训练&#xff0c;到最终的性能评估&#xff0c;在接下来的章节中&#xff0c…

使用ChatGPT生成和优化电子商务用户需求规格说明书

在电子商务项目开发中&#xff0c;用户需求规格说明书&#xff08;User Requirement Specification, URS&#xff09;是团队沟通与项目成功的基石。然而&#xff0c;面对复杂多变的需求&#xff0c;如何快速生成清晰、完整且具备说服力的文档&#xff1f;这正是AI工具的用武之地…

12-表的约束

知识背景 表的约束&#xff0c;就是在表中的数据上加上约束&#xff0c;也被称为数据完整性约束。数据完整性约束的目的是为了不被规定的、不符合规范的数据进入数据库 在录入数据库或数据发生变化时&#xff0c;DBMS(数据库管理系统)会按照一定的约束条件对数据进行监测&…

美创科技入选2024数字政府解决方案提供商TOP100!

11月19日&#xff0c;国内专业咨询机构DBC德本咨询发布“2024数字政府解决方案提供商TOP100”榜单。美创科技凭借在政府数据安全领域多年的项目经验、技术优势与创新能力&#xff0c;入选收录。 作为专业数据安全产品与服务提供商&#xff0c;美创科技一直致力于为政府、金融、…

微信小程序与公众号关联(同一主体),获取unionId并关联公众号openid

背景 有一些同学在实际开发中&#xff0c;会有通过微信的openid获取公众号的openid&#xff0c;或者其他内容&#xff0c;这几天正好在研究这个功能的实现&#xff08;已实现&#xff09;&#xff0c;现做思路上的简单分享&#xff0c;希望能对需要解决该问题的同学有所帮助&a…

SplatFormer: Point Transformer for Robust3D Gaussian Splatting 论文解读

目录 一、概述 二、相关工作 1、NVI新视角插值 2、稀疏视角重建 3、OOD-NVS 4、无约束重建下的正则化技术 5、基于学习的2D-to-3D模型 6、3D点云处理技术 三、SplatFormer 1、Point Transformer V3 2、特征解码器 3、损失函数 四、数据集 五、实验 一、概述 该论…

c++视频图像处理

打开视频或摄像头 打开指定视频 /*VideoCapture(const String &filename, apiPreference);filename:读取的视频或者图像序列的名称apiPreference&#xff1a;读取数据时设置的属性*/ VideoCapture video; //定义一个空的视频对象 video.open("H:/BaiduNetdiskDownlo…

前端三剑客(二):CSS

目录 1. CSS 基础 1.1 什么是 CSS 1.2 语法格式 1.3 引入方式 1.3.1 行内样式 1.3.2 内部样式 1.3.3 外部样式 1.4 CSS 编码规范 2. 选择器 2.1 标签选择器 2.2 id 选择器 2.3 class 选择器(类选择器) 2.4 复合选择器 2.5 通配符选择器 3. 常用 CSS 样式 3.1 c…

udp_socket

文章目录 UDP服务器封装系统调用socketbind系统调用bzero结构体清0sin_family端口号ip地址inet_addrrecvfromsendto 新指令 netstat -naup (-nlup)包装器 的两种类型重命名方式包装器使用统一可调用类型 关键字 typedef 类型重命名系统调用popen关于inet_ntoa UDP服务器封装 系…

【LLM训练系列02】如何找到一个大模型Lora的target_modules

方法1&#xff1a;观察attention中的线性层 import numpy as np import pandas as pd from peft import PeftModel import torch import torch.nn.functional as F from torch import Tensor from transformers import AutoTokenizer, AutoModel, BitsAndBytesConfig from typ…

解!决!vscode!Path Intellisense 失效!不起作用问题!!

第一步&#xff1a;找到path Intellisense插件 点击设置 第二步&#xff1a;打开settings.json文件&#xff1a; 第三步&#xff1a;配置settings.json文件内容&#xff1a; "path-intellisense.mappings": {"": "${workspaceRoot}/src",&qu…