Charles

一、抓包概述

1. 抓包概念

抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全等。下面就介绍几种抓包软件。

2. 常见抓包工具

Charles、fiddler、wireShark

软件名称简介独立运行支持移动设备是否收费
fiddler免费的HTTP查看工具,系统代理,工作在应用层
CharlesHTTP代理、HTTP监控、HTTP反代理、查看HTTP通讯、查看工作信息工具收费版/免费版
Wireshark半免费,网络抓包、监听网卡,工作在网络接口层
HttpWatch集成到IE、Chrome中的网络数据分析工具基础版/专业版
BurpSuiteHttp代理。是用于攻击web应用程序的集成平台,包含了许多工具:抓包、扫漏、爆破等。黑客必备工具之一

测试为什么要学习Charles抓包?

  1. 能够使用Charles来分析前后端问题
  2. 能够使用Charles模拟弱网测试环境
  3. 能够使用Charles的断点构建异常的测试场景

二、Charles简介

1. 什么是Charles

  • Charles中文名字青花瓷,是一款http代理服务器和http监视器,当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客户端来转发时,Charles可以监控这个客户端各个程序所有连接互联网的http通信。
  • 特点:跨平台、半免费
  • 免费版本:一是启动等待十秒才能启动,二是半小时重启一次

2. Charles工作原理

2.1 原理

截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容

2.2 原理图

Charles原理图.png

2.3 原理案例

租房子 房客 中介 房东
前置步骤:
(1)需要运行Charles并配置代理
(2)在客户端上面需要配置代理
步骤:
(1)有客户端发送请求
(2)Charles接受再发送给服务端
(3)服务端返回请求结果给Charles
(4)由Charles转发给客户端

3. Charles主要功能

  • 支持HTTP/HTTPS代理
  • 支持流量控制
  • 支持接口并发请求
  • 支持重发网络请求,方便后端调试
  • 支持断点调试
  • 支持修改网络请求参数
  • 支持网络请求的截获并动态修改
  • 支持模拟慢速网络

4. Charles优点(相对Fiddler)

  • Charles能够支持Linux、macOS,fiddler不支持
  • Charles支持按域名和按接口查看报文,简洁明了
  • Charles支持反向代理,fiddler不支持
  • Charles网络限速可选择网络类型,选择3G、4G、5G等
  • Charles可以解析AMF协议,一般用不到

三、安装与配置

1.Charles安装

官网下载:官网
在这里插入图片描述
双击,下一步即可在这里插入图片描述

2.Charles组件介绍

在这里插入图片描述
在这里插入图片描述
检验是否符合w3c标准。在这里插入图片描述
在这里插入图片描述

3. Charles设置

3.1 代理设置

在这里插入图片描述
在这里插入图片描述

3.2 Charles访问控制

在这里插入图片描述
在这里插入图片描述

4. 客户端设置

4.1 Windows代理设置

在这里插入图片描述

4.2 Android手机代理设置

四、实战

1. 抓取移动设备发送的http请求

  1. 先将移动设备连接到Charles客户端。首先在电脑中输入cmd打开命令行窗口,输入ipconfig查看本机连接无线网络的IP地址,这个地址作为移动设备连接Charles客户端的代理地址在这里插入图片描述

  2. 打开Charles客户端,点击Proxy->Proxy Settings菜单,可以设置移动设备连接到Charles的端口(8888),这样移动设备代理配置需要的ip地址和端口号都有了。在这里插入图片描述

  3. 打开手机wifi,设置所连接的wifi的代理网络;wifi代理设置为手动,代理的服务器ip填写上一步骤中查看到的电脑ip,端口填写上一步骤提到的charles的服务端口:在这里插入图片描述在这里插入图片描述
    注意:
    ①移动设备配置之后,第一次通过手机访问手机中的发送请求时,Charles会弹出提示框,提示有设备尝试连接到Charles,是否允许,如果不允许的话,手机发送请求失败,点击Allow允许,这样这个设备的IP地址就会添加到允许列表中,如果错误点击了Deny可以重启Charles会再此提示,或者通过Proxy->Access Control Settings手动添加地址,如果不想每个设备连接Charles都要点击允许的话,可以添加0.0.0.0/0允许所有设备连接到Charles。
    ②手机与电脑必须连接同一个WiFi
    ③不要勾选Proxy → SSL Proxying setting 中的Enable SSL Proxying
    ④Charles是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,本地系统(如果通过浏览器发送请求)发送出去的请求都能被截取下来。因此,如果想只抓取手机APP发送的请求的话,可以不勾选WindowsProxy选项,这样在测试时就不会被本机Http请求所干扰。在这里插入图片描述
    ⑤如果想要抓取浏览器发送的请求包,勾选WindowsProxy选项之后还是抓取失败,可能是浏览器没有设置成使用系统的代理服务器,只要设置成使用系统的代理服务器,或者将浏览器的代理服务器设置成127.0.0.1:8888也可以成功。

  4. 启动手机,打开软件,就可以进行联网抓包测试
    Charles提供两种查看封包的页签,一个是Structure(结构),另一个是Sequence(序列),Structure用来将访问请求按访问的域名分类,Sequence用来将请求按访问的时间排序。任何程序都可以在Charles中的Structure窗口中看到访问的域名。

五、证书安装

1. 为什么要安装证书

我们以前抓包都是抓取的是HTTP的请求,如果抓取HTTPS就会乱码,并不是没有抓取到,见下图:在这里插入图片描述
怎么解决呢?安装证书

2. Windows证书安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. Charles证书导出

1、打开charles
2、选择help-ssl proxying
3、save
4、选择存放路径以及证书名

4. charls证书导入

IE浏览器:设置 → Internet选项 → 内容 → 证书 → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储§ → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。
chrome浏览器:设置 → 管理证书(安全) → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储§ → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。

5. Chales HTTPS代理配置

证书安装之后发现还是乱码和unknown,需要配置代理
在这里插入图片描述
在这里插入图片描述

六、Charles常用功能

1. 过滤不必要的网络包

在抓取手机发送的请求时,有许多请求包是对图片等不需要关注的资源的请求,我们只想对指定目录服务器上发送的请求进行抓取,这时候就可以通过过滤网络包的方式实现。有两种实现方式:
1)选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址。


在这里插入图片描述
include:能抓取到的
exclude:不能抓取到的
2)在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:添加链接描述, 那么只需要在 Filter 栏中填入 csdn 即可。
注意:通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

2. 断点替换/修改数据

2.1 断点的作用:用来构建异常的测试场景
2.2 步骤:

方式一:

  1. 右击接口链接,选择"BreakPoints"在这里插入图片描述
  2. 在浏览器刷新对应接口的页面
  3. 此时会自动跳转到Charles并显示出接口请求信息
  4. 点击“Edit Request”,修改请求信息,点击“Execute”
    在这里插入图片描述
  5. 点击“Edit Response”
  6. 在数据格式兰中选择合适的显示格式,比如“json”
  7. 修改对应的数据,点击“Execute”
  8. 回到浏览器查看数据应该为修改之后的response的信息
    方式二:
  • Proxy → Breakpoint settings…中手动新建/启用某个断点;
    要求勾选enable breakpoints之后当下次再有该请求时,会自动进入断点模式
    在这里插入图片描述
    在这里插入图片描述
  • 新建断点
    在这里插入图片描述

3. 模拟慢网速

  • 为什么要做模拟慢网速
    不是所有的地方网络都好,所以要模拟慢网速。主要用在App端,因为PC一般都是宽带联网,而App哪里都有可能去。比如,测试上厕所
    在这里插入图片描述

4. 压测服务器

依次点击tools—Repeat Advanced
选择好并发线程数和打压次数,点击ok就能进行对产品的GET和POST请求进行测试服务器并发处理的性能,当然这里只是简单的进行压测,并且只能对Charles抓到的http协议的请求进行重复并发,缺点就是如TCP类的抓不到的就不能了,算是个小小的缺陷吧。
在这里插入图片描述

5. 模拟404

1、tools——>blacklist在这里插入图片描述
2、允许启用黑名单功能,选择接口返回错误的形式(404或者403),添加接口地址并保存在这里插入图片描述
【blocking connection】 选项可以选择“drop connection”或者 “403 respose”.前者接口会直接返回404错误,后者接口返回403错误
3、 选中需要返回404/403的接口,点击【ok】在这里插入图片描述
Charles破解

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Charles是一种用于网络调试和分析的工具。与Fiddler相比,Charles具有一些优点。首先,它支持多个操作系统,包括Linux、macOS和Windows。而Fiddler只支持Windows系统。其次,Charles提供了按域名和按接口查看报文的功能,使得报文的查看更加简洁明了。此外,Charles还支持反向代理,可以方便地进行调试和测试。另外,Charles还可以解析AMF协议,这对于开发和测试涉及到AMF协议的应用程序非常有用。 要在mac上配置Charles证书,您可以在Charles菜单栏中找到相应的选项。具体位置是在Help->SSL Proxying->Install Charles Root Certificate。按照指示进行操作即可完成证书的配置。 关于Charles的工作原理,首先需要在电脑上运行Charles并进行代理配置。然后,在客户端上也需要进行代理配置。接下来,当客户端发送请求时,请求会先经过Charles,然后由Charles转发给服务端。服务端返回请求结果后,结果也会经过Charles再转发给客户端。这样,Charles就能够捕获和分析请求和响应数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [软件测试之Charles](https://blog.csdn.net/qq_46088242/article/details/126867780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值