Charles抓包工具使用详解

Charles简介

Mac下常用网络抓包工具,主要功能:

  1. 1、 抓取http和https请求
  2. 2、 修改服务器返回内容
  3. 3、 修改网络请求
  4. 4、 模拟弱网络
  5. 5、对服务器压测

一、安装Charles及基本设置

1、安装charlesCA证书
1.1 选择 help | Install Charles CA SSL Certificate

在这里插入图片描述
图1.1.1.1
后会弹出证书信息,选择安装证书,下一步,将证书存储改为:受信任的根证书颁发机构,下一步
在这里插入图片描述
图1.1.1.2
在这里插入图片描述
图1.1.1.3

1.2证书安装原理

使用ssl proxy会导致部分客服端请求https返回证书无效等
简述原理
在这里插入图片描述
图1.1.2.1

具体底层原理可参考
http://www.oschina.net/translate/android-security-implementation-of-self-signed-ssl
菜单栏 Proxy->SSL Proxying Settings
勾选Enable SSL Proxying并添加https域名和端口号,支持正则。
在这里插入图片描述
图1.1.2.2

2 charles的基本设置

2.1 charles界面简介

在这里插入图片描述
图1.2.2.1
在这里插入图片描述
图1.2.2.2
在这里插入图片描述
图1.2.2.3
右键各选项作用
在这里插入图片描述
图1.2.2.4

2.2 基本设置
2.2.1【抓包http】

选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enabling transparent HTTP proxying
在这里插入图片描述
图 1.2.2.5

2.2.2【抓包https】

选择ssl,勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点(支持正则)、443端口的数据【443端口https】
在这里插入图片描述
图 1.2.2.6

2.2.3【charles设置为系统代理】

在这里插入图片描述
图 1.2.2.7
在这里插入图片描述
图 1.2.2.8
原理:charles是将自己设置为代理服务器抓包,windows和mac通过上述按钮设置代理,Mac版设置后第一次需要授权,只需输入账号密码授权即可

3、抓取移动设备上网络数据

3.1 charles设置

先把Charles上代理功能打开,见[图2.2.5],图中端口设置为任意A,
点击“proxy”->“access control settings”, 图3.1.1标红部分,填入0.0.0.0/0为允许任意设备接入,不添加则会弹出弹窗,手动添加接入设备见图3.1.2
在这里插入图片描述
图1.3.1.1
在这里插入图片描述
图1.3.1.2

3.2 移动设备上设置

无线网打开后添加IP,及上述设置的端口号A,代理连接后弹出提示弹窗见图3.1.2,点击allow接入,此时可正常抓取http网络包,抓取https需在浏览器中打开图3.2.2中4链接下载安装charles证书。http://charlesproxy.com/getssl
在这里插入图片描述
图1.3.2.1
在这里插入图片描述
图1.3.2.2

二、charles修改服务器返回内容

1、breakpoint断点功能

1.1 简述

该功能对临时修改request或response非常有效,但修改请求时不会停止计时,可能会导致请求超时等

1.2 步骤

选中加断点的session后,点击breakpoint,可以通过“proxy”->“breakpoint settings”对断点进行详细的编译。
备注:修改request的请求后续有详细描述此处不赘述见第三节
在这里插入图片描述
图 2.1.1.1
设置断点后,重新发送该请求则可对断点处数据进行修改
在这里插入图片描述
图 2.1.1.2

2、map功能

简述
Map 有map remote和map local两种,前者是将对应文件重定向到对应的远程服务器上,后者则是直接把对应文件重定向到本地,两者除了重定向文件位置不同,其它功能一致,都可对js,css,html接口等重定向。重定向设置时,在 Charles 的菜单中,选择 “Tools”->”Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。

2.1 Map local

需要重定向的session,右键“map local”,见图2.2.1.1,直接重定向到本地文件
在这里插入图片描述
图2.2.1.1

2.2 Map Remote

右键Map Remote,见图2.2.1.2,直接重定向到远程服务器。
在这里插入图片描述
图2.2.1.2
拓展:
1、 mock数据时,可以利用通配符把各种场景匹配进入需要的hosts中见图2.2.1.3
表示x.elong.com/hotelwxqb/*所有文件匹配到m.elong.com/hotelfx/对应文件下,notes笔记中可以清晰看到见图2.2.2.4
2、若设置中各配置项为空,则表示匹配所有请求。
在这里插入图片描述
图2.2.2.3
在这里插入图片描述
图2.2.2.4
Map to 项中如果匹配项为空,则只替换Map from中的匹配项不为空则
Map to中的值替换对应的 Map from中的值,再加上Map from中的没匹配的项进行请求
比如:图2.2.2.3中把Map to 的path值去掉保存后
访问的请求为http://m.elong.com/hotelwxqb
ap隐射可以使用的模式匹配符有三种:

  • λ *: 可以匹配0个或者多个字符
  • λ ?: 可以匹配一个字符
  • λ […]: 范围选择符,可以匹配范围中的任意一个字符
    假设Map From配置中的各个项为空,表示匹配所有请求,然后Map To项的配置不同,代表不同含义,下表列出一个简单例子
    在这里插入图片描述

3、rewrite功能

3.1 简介
在 Charles 的菜单中,选择 “Tools”->”Rewrite”

在这里插入图片描述
图2.3.1.1
点击add为详细的添加规则,可对请求的各内容进行详细的匹配
在这里插入图片描述
图2.3.1.2

3.2使用场景

Host:通过charles代理切换访问的域名或者ip
在这里插入图片描述

4、三种功能对比
三者都可达到修改服务器返回参数的目的,但各自侧重点又有不同

Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
Rewrite 功能适合对网络请求进行一些正则替换。
Breakpoints 功能适合做一些临时性的修改。

三、charles修改网络请求

描述
:为了调试服务器的接口,我们需要反复尝试不同入参的网络请求,charles可以方便提供网络请求的修改和重发功能。
操作方式
:选中想要编辑的请求,右键选择“Edit”,见图3.1.1则可以对请求的任意信息如host,端口请求方式等编辑见图3.1.2,然后点击“execute”放行即可!
在这里插入图片描述
图 3.1.1
在这里插入图片描述
图 3.1.2

四、charles模拟弱网

简述
在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。
在 Charles 的菜单上,选择 “Proxy”->”Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图为页面介绍
在这里插入图片描述
图 4.1.1.1
此处不做过多介绍,可参考文档
https://testerhome.com/topics/7384

五、对服务器做压力测试

描述:可以用charles的repeat功能测试服务器的并发处理能力

1、repeat 功能

选中一条session后,直接右键,repeat则可以请求单条数据
在这里插入图片描述
图5.1.1

2、Repeat advanced

选中一条session后,右键用repeat advanced功能,弹出界面见图5.2.1

可简单的模拟对服务器进行多次请求数据,做简单的压测
在这里插入图片描述
图5.2.1
Ps:对于承受力较弱的网站请求次数较多的话会直接压垮
Repeat:1000 为每个请求延迟多少ms请求

六、过滤网络请求

1、Filter加过滤

Filter中直接过滤需要的关键词,如图6.1.1
在这里插入图片描述
图6.1.1

2、Recording setting界面

菜单栏中,“proxy”—>“recording setting”—>“include”,直接添加协议,主机地址,端口号等
在这里插入图片描述
图6.2.1

3、focussed hosts界面

菜单栏中,点击“view”->“focused hosts”

4、三种方式对比

  1. 1、 filter从众多session中直接过滤出需要的session
  2. 2、 recording setting,直接屏蔽不需要的session只展示对应的请求
  3. 3、 focused hosts直接把需要的hosts直接归类[基于树状视图]

备注:部分图片链接来自网络,如侵权,请联系,会及时删除

猜你喜欢

转载自blog.csdn.net/Niu_Eva/article/details/84190982
今日推荐