【测试抓包工具:Charles】使用笔记

抓包工具:Charles 使用笔记(CLY)

本质上就是一个HTTP代理服务器

一、抓包目的

# 1-查看接口数据
# 2-定位前后端问题
# 3-APP弱网测试

二、环境

# 安装配置jdk
# 安装charles,启动如果提示端口占用,无法打开的话,重启后再试

三、charles使用

1、设置电脑端代理
# chrome或IE浏览器
默认使用系统代理

# Firefox手动配置
手动配置代理或者配置为使用系统代理

# 打开charlese,查看是否正常抓取 http 请求
2、compose-篡改数据
# 目的:绕过前端校验,检查后端是否有校验

正常登录示例图:

在这里插入图片描述

使用compose复制请求,绕过前端校验,查看后端是否校验:

在这里插入图片描述

在这里插入图片描述

3、breakpoints:断点调试
# 目的:快速定位前后端问题

# 操作步骤
1-在前端页面触发,抓包捕获到对应的请求
2-选中请求,右键选择 Breakpoints(将这个接口添加到断点配置中,并自动开启断点调试)
3-在前端页面再次触发这个请求(charles自动弹出,跳转到断点调试页面)
4-点击 Edit Request,修改请求数据,然后点击 Execute,发送请求,回到前端页面查看页面显示结果
5-如果触发响应断点(charles自动弹出,跳转到断点调试页面)
6-点击 Edit Request,修改响应数据,然后点击 Execute,获取响应,回到前端页面查看页面显示结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、抓取电脑端HTTPS请求
# 流程:
	# 1-安装charles根证书
    # 2-开启SSL代理

未配置前:

在这里插入图片描述

安装 charles 的ca证书

在这里插入图片描述

# 安装过程:

# 点击证书弹窗 “安装证书” 》》 “本地计算机” 》》 “是” 》》 “将所有证书放入下列存储” 》》 “浏览” 》》 
# 选择 ”受信任的根证书颁发机构“ 》》 “确认” 》》 “完成”

开启SSL代理

在这里插入图片描述

# 启动过程:

# 勾选 Enable SSL Proxying
# 配置 Location(需要抓取的IP和端口)
# 配置 Exclude(不需要抓取的IP和端口)

配置完成后:

在这里插入图片描述

5、抓取移动端HTTP请求
# 操作步骤

# 1-是移动端和电脑在用一个局域网下

# 2-电脑端配置
	# 关掉防火墙
    # 打开 charles,进入:Proxy >> Proxy Settings,开启 “Enable transparent HTTP proxying”
    # 如果不想被 windows 请求干扰,取消勾选:Proxy >> Windows Proxy

# 3-移动端配置
	# 设置网络代理(代理服务器主机名:“电脑IP”,代理服务器端口:“charles端口”)

# 4-完成设置后,执行手机任意网络请求(如果首次:charles会弹出手机请求连接的弹窗,点击 Allow)

# 5-开始抓包

在这里插入图片描述

在这里插入图片描述

6、抓取移动端HTTPS请求
# 操作步骤

# 1-完成抓取移动端HTTP请求相关配置,已经可以抓取HTTP的请求

# 2-安装charles的移动端根证书:
	# 电脑端:
    打开charles >> Help >> SSL Proxying >> Install Charles ROOT Certificate on a Mobile Device or Remote Browser >> 保持提示弹窗
    # 移动端
    (前提:配置好网络代理)移动端浏览器输入:chls.pro/ssl >> 输入证书名称(自己命名:charles) >> 安装(设置》安全》加密与凭证》安装证书》CA证书》仍然安装》选择浏览器下载的证书,进行安装)
    # 电脑端:点击确定,如果没有抓到,请重启charles
    # 移动端:重新发送请求(或重启应用)
# 3-开始抓包

# 4-备注:如果是IOS系统等,可能会需要其他设置,后面自行补充,流程基本一致

安装移动端CA证书

在这里插入图片描述

在这里插入图片描述

打开移动端,进入目标网页

在这里插入图片描述

安装证书

在这里插入图片描述

安装完成后,查看访问百度(安装证书之前,打开HTTPS的百度,会报该链接不是私密连接之类的,无法访问)

在这里插入图片描述

查看charles抓包数据

在这里插入图片描述

四、APP弱网测试

1、弱网测试背景
# 移动APP经常会进入一些网络不好的场景,查看在信号不好的时候,APP是否可以正常工作
2、关注点
# 1-网络不好的时候,是否有友好提示信息

# 2-网络不好的时候,是否重复提交数据

# 3-网络不好的时候,是否出现Crash(意外停止工作)、ANR(无响应)
3、模拟弱网测试
# 操作步骤

# 1-打开charles >> Proxy >> Throttle Settings >> 勾选 “Enable Throttling” 

# 2-配置弱网
	# 勾选 “Only for selected hosts”,配置需要限流的IP
    # Throttle preset(预设网络环境)
    # 其他参数

# 3-开始抓包

没开启弱网前:

在这里插入图片描述

开启弱网后:256kb

在这里插入图片描述

4、弱网设置指标

在这里插入图片描述

①Throttle preset:预设
# 预先设置好的常用的一些指标
②Bandwidth:带宽
#分为下载、上传速度
③Utilisation:利用率
# 总带宽的百分比,作为可用带宽的缩放比例,一般100%
④Round-trip Latency(ms):请求往返延迟
# 客户端和服务器之间往返通信延迟
⑤MTU:最大传输单元
# 任何传输的TCP数据包的最大尺寸
⑥Reliability:可靠性
# 丢包率
⑦Stability:稳定性
# 网络抖动
⑧Unstable quality range:不稳定质量范围
# 针对 Stability 中设置的范围
5、常用弱网指标
①2G

在这里插入图片描述

# 可以把上述配置添加进预设

五、常用抓包工具对比

1、fiddler
# 优点
	1-功能强大、齐全
    2-免费开源
    
# 缺点:
	只支持 Windows 系统
2、charles
# 优点:
	1-支持 Windows、MacOS、Linux(基于java)
    2-简单易用

# 缺点:
	不免费
3、wireshark
# 优点:
	1-可以过滤特定网卡经过的数据,针对性强
    2-可以抓取所有协议的报文,并以完整的OSI七层网络模型展示,非常适合学习和分析网络协议
    3-提供了非常强大的过滤规则
    4-可以结合TCPdump使用,分析线上服务器(Linux)下抓取的数据报文,定位线上问题

# 缺点:
	1-需要使用者有一定的网络基础
    2-无法分析 HTTPS 数据包,因为 wireshark 是在链路层获取数据包,所以获取的 HTTPS包时加密后的数据,解密比较复杂
4、Brup Suite
# 优点:
	1-支持 Windows、MacOS、Linux(基于java)
    2-不仅仅是抓包工具,还集成了很多实用小工具,具备其他功能,如HTTP请求转发、修改、扫描,很多安全测试用来进行半自动的网络安全审计,一些开发用它的扫描工具进行网站压力测试与攻击测试
    
# 缺点:
	不免费
5、F12
# 优点:
	1-简单轻量
    2-抓取的报文可以得到明文数据

# 缺点:
	1-层级只在应用层,只能抓取当前浏览器的报文,不能抓取其他数据报文
    2-作用面和功能没有其他抓包工具强
6、TCPdump
# 优点:
	1-专门用于 Linux 命令行的抓包工具,提供很多参数对网络数据包进行过滤
    2-抓到的报文可以直接打印在 Linux 命令行界面,也可以保存为文件,并用 wireshark 工具打开进行分析
# 缺点:
	需要使用者有一定的Linux系统操作能力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值