抓包工具-Charles

目录

1.环境搭建

2.Charles的界面&功能介绍

2.1提供两种封包视图:Structure和Sequence

2.2模拟网速

2.3重复发送请求

2.4修改服务器返回内容

2.4.1断点功能Breakpoints

2.4.2重写功能Rewrite

 2.4.3重定向MAP(后面在介绍)

2.5修改请求

2.6其他请求太多干扰数据太乱

3.常见的问题

3.1为什么30分钟就会关闭一次

3.2请求一次,为什么会显示两个接口?

3.3不想看到某个地址/看不到某个地址的数据

3.4有的请求看到的请求和返回数据是乱码


1.环境搭建

a.安装Charles,官网地址:https://www.charlesproxy.com/

b.首先检查电脑是否有java环境,Charles的运行需要java环境才可以

2.Charles的界面&功能介绍

2.1提供两种封包视图:Structure和Sequence

Structure:将网络按照访问的域名分类

Sequence:将网络请求按访问的时间排序

2.2模拟网速

可以用在APP测试上,检测弱网对APP的使用情况影响

Proxy-->Throttling Setting

部分设置含义,Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)

2.3重复发送请求

选中想要重复发送的请求,右击选择repeat,就会重新发送一次请求,如果想要自己定义请求次数和间隔,则选择Repeat Advanced

2.4修改服务器返回内容

2.4.1断点功能Breakpoints

操作如下:

a.我们可以通过采用断点,来篡改请求的数据或返回的数据。

b.设置完断点之后,如果下次访问这个接口,这个接口就会被拦截,并在Charles跳出断点的页面,会弹出两个一样的,第一个点Execute,此时选择Edit Request--->选择form模式查看--->修改发送的请求内容(注意要尽快修改,不要停留过久,不然会超时的情况)--->修改完成后点击执行Execute,此时就完成了数据篡改

c.设置完断点,并进行验证后,记得把断点关掉,否则以后每次遇到这个请求都会卡住

【实操】

篡改前端数据(试用场景:可以用于一个查询框,要输入多种内容,此时只需要设置断点拦截并修改参数即可)--以项目合作单列表为演示

首先对需要请求的数据进行打断点

设置完之后,进行断点设置,勾选request则为前端请求数据,取消response的选择,将query删除

 此时在项目输入达人搜索为“1”,点击搜索,这时候Charles会拦截该页面,并且你可以对其进行修改,我这边修改成“哈哈”之后,点击excute。此时前端传的数据就被篡改了,而后端返回的则是匹配“哈哈”的内容,而不是“1”的内容

断点修改请求内容
项目界面显示

篡改后端数据--以项目首页数据为例(常用场景:数据的长度、用户昵称的长度验证前端显示是否正常

首先也是设置断点,设置完后进行断点的设置,勾选response则为前端请求数据,取消request的选择

 原先这个数据为5 ,通过断点,将数据篡改成超大,看下前端显示是否正常(这时候你就会发现UI有些不正常了)

断点修改后端数据
修改后数据页面显示
项目界面显示

2.4.2重写功能Rewrite

a.选中需要修改的请求,点击tools-->Rewrite,在弹出的页面进行以下操作 

 

 b.此时进入你修改的APP/web页面,可以看到这个昵称已经都被修改成新的昵称

c.最后,如果需要撤回重写,则取消勾选

 2.4.3重定向MAP(后面在介绍补充)

2.5修改请求

通过修改请求的参数,达到查看后端返回数据的效果。选中某条请求,右键,点击编辑图标,然后修改参数,下图为修改项目员工管理页面获取员工部门的参数,点击Execute,查看返回的信息

Charles页面操作

2.6其他请求太多干扰数据太乱

可以右击选中自己关注的host,选择focus,这样子其他地址的请求都会显示在other hosts了

3.常见的问题

3.1为什么30分钟就会关闭一次

Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。可以去找找资源噢

3.2请求一次,为什么会显示两个接口?

实际第一条是option,不会返回任何数据,也就是response body 里面没有内容,调第二次相同的接口会有response body 里会显示实际请求的数据(就是:在发生正式的请求之前,先进行一次预检请求。看服务端返回一些信息,浏览器拿到之后,看后台是否允许进行访问),具体可以参照文章:为何抓到的包有2条重复的请求?(一条OPTIONS,一条GET/POST/其他)_我不想成秃头的博客-CSDN博客。下图为两次请求的区别

 

3.3不想看到某个地址/看不到某个地址的数据

右键某条地址,选择ignore,就忽略掉了该链接所有的数据,在右键则取消ignore。

如果找不到该链接了,在Proxy-Recording Setting中找到Exclude,选中被忽略的地址,点击Remove就可以了

3.4有的请求看到返回数据是乱码

检查是否SSL请求被关掉了,右键--->SSL Proxying:Enabled/Disabled,置灰栏Enabled状态代表开启,Disabled代表关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值