Charles

1.常见抓包工具

Charles、fiddler、wireShark
charles工具介绍
charles中文名字青花瓷,其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的 目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charles的时候要先装好Java环境。

2.Charles主要功能

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

3.Charles优点(相对Fiddler)

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

4.pc端抓包

(1)将Charles设置成系统代理:proxy–windows proxy
(2)如果乱码证书安装:Help–SSLproxying–Install charles root Certificat(证书下载),
(证书导出)选择help-ssl proxying ,save Charles root certificate,选择.cer格式的证书,选择存放路径以及证书名和文件类型
(3)charls证书导入:
IE浏览器:设置 → Internet选项 → 内容 → 证书 → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储§ → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。 chrome浏览器:设置 → 管理证书(安全) → 导入 → 下一步 → 选择证书 → 选择所有证书都放入下列存储§ → 浏览,选择“受信任的根证书颁发机构” → 下一步 → 完成。
(4)Chales HTTPS代理配置:证书安装之后发现还是乱码和unknown,需要配置代理,设置完成后,不管是PC端的https请求还是移动端的,都不会有乱码
Proxy–SSL proxying settings>port:端口号

5.移动端抓包

(1)获取PC端ip:先将移动设备连接到Charles客户端。首先在电脑中输入cmd打开命令行窗口,输入ipconfig查看本机连接无线网络的IP地址,这个地址作为移动设备连接Charles客户端的代理地址
(2).设置Charles端口号:打开Charles客户端,点击Proxy->Proxy Settings菜单,可以设置移动设备连接到Charles的端口(8888),这样移动设备代理配置需要的ip地址和端口号都有了。
(3).设置手机wifi代理网络:打开手机wifi,设置所连接的wifi的代理网络;wifi代理设置为手动,代理的服务器ip填写上一步骤中查看到的电脑ip,端口填写上一步骤提到的charles的服务端口:
(用charles查看IP和端口号:Help>SSL proxying>Install Charles Root Certificate on a Mobile Device or Remote Browser)
注意:①移动设备配置之后,第一次通过手机访问手机中的发送请求时,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窗口中看到访问的域名。

5.过滤不必要的网络包:在抓取手机发送的请求时,有许多请求包是对图片等不需要关注的资源的请求,我们只想对指定目录服务器上发送的请求进行抓取,这时候就可以通过过滤网络包的方式实现。有两种实现方式:
1)选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址
.include:能抓取到的 exclude:不能抓取到的
2)在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://blog.csdn.net, 那么只需要在 Filter 栏中填入 csdn 即可。 注意:通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

6.断点替换/修改数据

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

7.模拟慢网速

为什么要做模拟慢网速 不是所有的地方网络都好,所以要模拟慢网速。主要用在App端,因为PC一般都是宽带联网,而App哪里都有可能去。比如,测试上厕所
(1)Proxy–>Throttling Settings
勾选Enable Throttling
8.压测服务器
依次点击tools—Repeat Advanced 选择好并发线程数和打压次数,点击ok就能进行对产品的GET和POST请求进行测试服务器并发处理的性能,当然这里只是简单的进行压测,并且只能对Charles抓到的http协议的请求进行重复并发,缺点就是如TCP类的抓不到的就不能了,算是个小小的缺陷吧。
Iterations(打压次数)Concurrency(并发数量)

8.模拟404

(1)tools——>blocklist
(2)允许启用黑名单功能,选择接口返回错误的形式(404 或者403),添加接口地址并保存
【blocking connection】 选项可以选择“drop connection(404)”或者 “return 403 response”.前者接口会直接返回404错误,后者接口返回403错误
(3)选中需要返回404/403的接口,点击【ok】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值