charles使用

news2024/7/6 19:09:36

charles​

一、概念​

charles是一款非常优秀的抓包工具,全平台支持,在mac,windows,linux上都可以使用,既可以抓 取web端的包,也可以抓app端的包。 ​
charles主要的功能包括如下几点: ​
截取 Http 和 Https 网络封包。 ​
支持重发网络请求,方便后端调试。 ​
支持修改网络请求参数。​
支持网络请求的截获并动态修改。 ​
支持模拟慢速网络。​
代理服务器的工作原理如下所示:https://www.processon.com/diagraming/646d91e9b967351512b67e8b;​
在这里插入图片描述

客户端发起请求,请求通过charles转发给服务器,服务器返回响应,响应通过charles转发给客户端。 charles所起的作用就相当于信使,把信笺从A传递给B,并且把回信从B传递给A. 正因为他这个信使的工作,所以他对信笺的内容了如指掌(不管是原信笺还是回信),正因为如此, charles也就可以篡改信笺的内容,即篡改请求和响应。​

二、抓取pc端https协议包​

1、charles默认是不能抓取https协议的包,需要做如下的设置。 ​
在 Charles 窗口中,单击菜单项“代理”->“代理设置”​
​2、在代理设置窗口中,勾选“启动 SOCKS”代理,“通过 SOCKS 启动 HTTP 代理”、“包括默认 HTTP端 口(80,443,8080,8443)”自动被勾选上,保持这两个选项的勾选设置,单击【确定】
3、在 Charles 窗口中,单击菜单项“代理”->“SSL 代理设置”
4、单击【添加】,在弹出的“编辑位置”窗口中,主机、端口文本框均输入星号,如下截图所示, 单击“编辑位置”窗口中的【确定】
5. 然后在“SSL 代理设置”窗口中,单击【确定】
6. 安装根证书:

  1. 在 Charles 窗口中,单击菜单项“帮助”->“SSL代理”->“安装Charles根证书”
  2. 存储位置勾选当前用户、本地计算机均可,单击【下一步】
  3. 在“证书”窗口,单击【安装证书】
  4. 在“证书导入向导”窗口,单击【下一步】
  5. 在“证书导入向导”窗口,点选“将所有的证书都放入下列存储”,单击【浏览】, 在弹出的“选择证书存储窗口”中,单击“受信任的根证书颁发机构”,单击【确定】
  6. 在“证书导入向导”窗口中,单击【下一步】
  7. 在“证书导入向导”窗口中,单击【完成】
  8. 在弹出的“安全性警告”窗口中,单击【是(Y)】
  9. 弹出的“证书导入向导”提示框中,单击【确定】
  10. 在“证书”窗口中,单击【确定】。至此,完成 PC 端证书安装(或导入)

❓为什么Charles抓包时要安装CA证书呢

  1. https是http的安全版本,超文本传输协议http是以明文发送数据,而https是具有安全性的ssl加密传输协议,可以这么认为https=http+ssl(Secure Socket Layer安全套接层)。

  2. 采用https的服务器必须从CA申请一个用于证明服务器用途类型的证书,证书是唯一性,只用于对应的服务器。客户端要认可这个服务器是否是安全的,可以进行访问或者交易等操作,则需要进行对服务端的验证。
    下图是客户端对服务器的验证过程:
    在这里插入图片描述

  3. ssl证书,遵循了ssl协议,在客户端和服务器之间建立了一条ssl安全通道,一般ssl证书都是在验证服务器身份后颁发给客户端。

  4. 由于ssl技术已建立在所有主要的浏览器和web服务器程序中,因此,仅需安装服务器证书就可以激活ssl协议,所以客户端通过信任该证书,就相当于信任了该主机(服务器)
    下图是客户端和服务端加密通讯的流程:
    在这里插入图片描述以上说明安装CA证书的原因:可以通过ssl数字证书中的私用密钥来解译加密的信息,展示在Charles中。
    ❓什么是CA证书
    CA是“证书授权中心”的简称,是负责管理和签发证书的第三方机构。
    CA证书即为CA颁发的证书。
    证书人人都可以制作,但只有权威机构颁发的证书,大家才能一致认可。
    ❓SSL证书和CA证书关系
    SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。


三、主界面功能介绍

3.1查看会话

Charles主要提供两种查看封包的视图,分别名为结构和序列。

  • 结构
  • 序列

3.2过滤功能

当请求过多的时候,也可以通过过滤功能过滤指定的url地址。

  • 第一种过滤方法,在过滤的筛选框里面过滤。
  • 第二种过滤方法,点击代理->记录设置

3.3查看接口信息相关内容

  • 点击想查看的url地址,然后右边会出现一个框,可以查看详细信息
  • 点击内容,里面有请求和响应的详细信息

3.4断点

breakpoints功能:当指定的网络请求发生时,charles可以截获请求,也可以临时修改网络请求的返回值。 点击代理-断点设置-启动断点-编辑断点,可以对响应和请求做断言,在编辑里面可以进行勾选。
如果你点击了对请求做断点,那么可以对参数进行修改和删除;
如果你点击了对响应做断点,那么可以对响应数据进行修改。

3.5模拟弱网

点击主页图标的小乌龟,就可以实现弱网请求。

  • Bandwidth(带宽):带宽定义数据可以传送超过时间上限,这是千比特每秒指定。可以指定上载和下 载链接的不同带宽限制。
  • Utilisation(利用率):利用率是总带宽的百分比,可以在任何一个时间使用。它只是作为可用带宽的 缩放因子。对于大多数现代互联网连接利用率始终是100%。
  • Round-trip Latency(请求往返延迟):往返延迟测量客户端和远程服务器之间的第一次往返通信的毫 秒延迟。它用于客户端向服务器和服务器向客户端的每次请求。
  • MTU(最大传输单元):在任何传输的TCP数据包的最大尺寸。指定MTU不改变的可用带宽,但允许 Charles在MTU分配带宽大小的块,导致在每个传输包分割的现实水平。
  • Reliability(可靠性):可靠性是衡量连接完全失败的可能性。这是非常有用的模拟不可靠的网络条件。 可靠性是指定为成功发射10kib消息的可能性,所以,值为50%意味着所有10kib传输一半会成功。较大 的邮件或更小的消息或多或少都有可能失败,所以20kib传输将只有25%的成功率和5kib传输成功率约 70%。
  • Stability(稳定性)【抖动】:稳定性是衡量一个连接的可能性是不稳定的,因此降低了质量。这是非常有用的模拟网络,如移动网络,定期连接质量差。如果连接不稳定,则连接的质量会在不稳定的质量范围内随机下降。此质量值,然后应用作为另一个缩放因子的可用带宽。
  • unstable quality range(不稳定质量范围):此处设置主要针对于Stability中设置中的范围

四、手机端链接charles的安装与配置

ipconfig查看本机的ip地址配置。
安装CA证书:输入:http://chls.pro/ssl来下载证书。
❗❗❗Charles和Fiddler一样,一个手机可以安装多个证书,但是每安装的一个证书里面都设置有IP地址,所以:安装的证书和电脑IP是一一对应的,当前的这个证书只能针对某一台电脑使用,更换电脑后,该证书将不能使用,只能重新安装与更换的电脑的IP相同的证书才能使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络服务:SSH远程访问及控制2

目录 一、理论 1.构建密钥对验证的SSH体系 2.TCP Wrappers访问控制 二、实验 1.ecdsa免密连接 2.rsa免密连接 一、理论 1.构建密钥对验证的SSH体系 (1)免密连接原理 ① 手动添加客户端的公钥到服务端 ② 服务端收到客户端的公钥后使用客户端公钥…

C++——引用

引用的概念 初步理解:引用相当于给变量取了一个别名,它和引用的变量共用同一块空间。 就好比孙悟空有很多外号,例如孙行者,齐天大圣,斗战胜佛,但是它们所指都是孙悟空。同样的,如果齐天大圣大…

如何在 Ubuntu 22.04 上安装 Python Pip?

Python Pip 是 Python 的包管理器,它允许您轻松地安装和管理 Python 包和库。在 Ubuntu 22.04 上安装 Python Pip 是非常简单的。 本文将详细介绍如何在 Ubuntu 22.04 上安装 Python Pip,并为您提供逐步指南。 步骤 1:更新软件包列表 在安装…

C Primer Plus第八章编程练习答案

学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 1.设计一个程序,统计在读到…

Yum使用方法

1.什么是软件包 在Linux下安装软件,有三种方法: 通过对源代码进行封装,并进行编译,得到可执行程序。rpm安装,rpm安装软件需要各种指令,对于小白来说不友好,容易出错。yum安装,解决…

六、Docker仓库之Harbor搭建(三)

Harbor搭建 一、Harbor简介 1.Harbor介绍 Harbor是一个用于存储Docker镜像的企业级镜像服务器,通过添加一些企业必需的功能特性,如安全、标识和管理等,大大扩展其功能。作为一个企业级私有镜像服务器,Harbor提供了更好的性能和安…

Modern CSV:大型 CSV 文件编辑器/查看器 Crack

Modern CSV用于快速查看大型 CSV 文件 适用于 Windows、Mac 和 Linux 的复杂 CSV 编辑器/查看器 被使用 电子商务运营商。数据科学家。会计师。 IT 专业人员。学生。医学研究人员。数字营销人员。生物学家。工程师。 现代 CSV 是适用于 Windows、Mac 和 Linux 的功能强大的表格…

SSM 如何使用 TCC 机制实现分布式事务?

SSM 如何使用 TCC 机制实现分布式事务? 分布式事务是现代分布式系统中必不可少的一部分,而 TCC 机制(Try-Confirm-Cancel)是一种常用的分布式事务处理方式。在 SSM 框架中,我们可以使用 TCC 机制来管理分布式事务。本…

RabbitMQ系列-概念及安装

1. 消息队列 消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信 而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的…

Spring源码解析

Idea导入Spring源码 下载 下载gradle 因为Spring源码里没有使用Maven依赖,而是使用gradle依赖,所以我们需要在本地下载安装并配置gradle环境。注意,这里下载安装的gradle版本应与Spring源码中的gradle版本对应。这里推荐下载我的&#xff…

Linux网络服务:部署YUM仓库与NFS服务

目录 一、理论 1.部署YUM仓库服务 2.NFS共享存储服务 二、实验 1.通过httpd服务建立yum仓库 2.通过vsftpd服务建立yum仓库 3.搭建NFS实现2台或3台服务器共享一个目录 一、理论 1.部署YUM仓库服务 (1) YUM简介 YUM的前身是YUP,借助于YUM软件仓库&#xff0c…

关于原型链

1-__proto__([[Prototype]])和prototype 每个对象都有一个隐式原型,这个隐式原型可以通过 obj.__proto__ Object.getPrototypeOf(obj)这两种方式获取; 我们都知道对象是通过构造函数构造的,new关键字构造的, 构造函数上有一个显…

如何在华为OD机试中获得满分?Java实现【最佳对手】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 游戏里面,队伍通过匹配…

native层函数没有导出时,如何获得相应函数地址?

前言 每次App重新运行后native函数加载的绝对地址是会变化的,唯一不变的是函数相对于基地址的偏移,因此我们可以在获取模块的基地址后加上固定的偏移地址获取相应函数的地址,Frida中也正好提供了这种方式:先通过Module.findBaseA…

SQL教程1

SQL 是用于访问和处理数据库的标准的计算机语言。 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 SQL 简介 SQL (Structured Query Language:结构化…

OSPF协议

OSPF:开放式最短路径优先协议 无类别IGP协议;链路状态型;基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划 组播更新 --- 224.0.0.5 224.0.0.6 支持等开销…

shell变量的使用 rhce(25)

目录 1.总结变量的类型及含义? 2.实现课堂案例计算长方形面积?(6种方式) 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现) (1&#xff0…

Redis的数据过期策略

数据淘汰策略-使用建议 1.优先使用allkeys-lru策略。充分利用LRU算法的优势,把最近最常访问的数据留在缓存中。如果业务有明显的冷热数据区分,建议使用。 2.如果业务中数据访问频率差别不大,没有明显冷热数据区分,建议使用allkeys…

【AUTOSAR】 AUTOSAR整体开发流程(六)---- ISOLAR与Simuink

ISOLAR与Simuink交互 8.1 AutoSar的几种开发流程 8.2 Simulink 到ISOLAR Simulink生成SWC arxml SWC arxml放到ISOLAR文件夹 F5即可显示 8.3 ISOLAR到Simulink 1、Matlab的几个命令 1)importer Call the constructor arxml.importer to create an importer obj…

Nomad 会替代 Kubernetes 吗?对比一下,两者如何选择?

概 述 根据市场状况,Kubernetes(又称“K8s”)已经成为容器编排之王,超越了Docker Swarm和Mesos等竞争对手。但是,在K8s(2014)出现的同时,还有另一个编排项目HashiCorp的Nomad&…