Charles抓包

一、Charles简介

1、是什么

俗称青花瓷,Java语言开发,是一款基于HTTP协议的代理服务器,可截取请求和请求结果达到分析抓包的目的。

2、组件介绍

(1)主导航栏

主导航栏e. 开启/关闭断点设置(✅)
===》用户对app体验要求高 异常数据时导致crash-闪退 ANR-应用无响应 application not response 无限加载
修改前端数据目的:
1、安全测试,修改密码页面抓包,账号明文,密码加密,将加密的字符串改成自己密码
修改后端数据目的:更改接口参数 增加或删除等破坏性操作
验证前端代码的健壮性

扫把按钮:点击之后可清除抓取到的所有请求
图标按钮:红点亮起说明正在抓取请求,红点展示为灰色说明目前不在抓取请求状态
乌龟按钮:灰色乌龟是网速设置正常,绿色乌龟指慢速网速开启了
六角形图标:断点图标,灰色说明断点未开启,红色说明在使用断点
钢笔图标:编辑请求,点击之后可以修改请求的内容 – (在Charles中有效)
刷新图标:重复发送请求的图标,先选定某一请求点击该图标则请求会被再次发送
对号图标:检验返回的请求-是否符合W3C
扳手图标:对应于导航栏中的tools图标,有些许功能
设置图标:设置charles中的情况

(2)请求栏

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)数据栏

Overview:会展示该请求的一个大体情况,例如请求头,请求响应结束时间,请求开始时间以及自己的notes等
content:请求的具体内容和服务器的响应内容
summary:也是展示一个该请求的大体资源分布情况。例如:服务器响应了多长时间,host是什么等等
chart:以表格形式告诉我们一个响应时间的分布情况。
notes:点击之后自己可以对该请求记录一些东西,方便后续查看该接口的用途,可在overview中查看在这里插入图片描述
headers:请求/响应头信息
query string:请求参数

text:文本形式展示响应内容
hex:16进制
json:以json格式查看响应内容内容,简单明了
json text:将json格式的内容展开书写
raw:原始数据信息

3、主要功能

(1)HTTP和HTTPS代理
(2)流量控制 — 弱网环境的测试
(3)接口并发请求 — 可以同一时间执行多个请求,简单的性能测试
(4)重发网络请求 — 接口测试,用的比较少
(5)断点调试 — 用户对app体验要求高,异常数据时导致crash-闪退、ANR-应用无响应、无限加载,打断点来修改请求和请求结果数据构造异常场景

修改前端数据:
安全测试,修改密码页面抓包,账号明文,密码加密,将加密的字符串改成自己密码
修改后端数据:
验证前端代码的健壮性,更改接口参数,增加或删除等破坏性操作

二、Charles抓取HTTPS原理

1、https简介

在HTTP传输层之上加了一个安全层(SSL或TLS协议实现),可以做到以下3点:

数据的保密性
校验双方身份的真实性
数据的完整性

(1) 数据的保密性
数据要保密,就需要对数据进行加密。加密算法可以分为2类,一类是对称加密算法,另一类是非对称加密算法。

对称加密算法,加密和解密使用相同的密钥,优点是加密速度快,缺点是如果密钥泄露的话就无法做到保密了。常见的对称加密算法有DES、AES等。

非对称加密算法,又叫公开密钥加密。需要有2个密钥,公钥和私钥,公钥向所有人公开,私钥不公开。用公钥加密的数据只有私钥才能解密;反之,用私钥加密的数据只有公钥才能解密。因为这种特性,非对称加密算法可以用来校验数字签名,下面会具体讲解。

很显然,仅使用对称加密算法是不现实的,互联网中通信的双方大多是临时建立的连接,不可能提前协商好密钥,而且密钥也要进行传输,无法保证密钥本身的安全性。

如果使用非对称加密,客户端向服务器发送数据是安全的,客户端用服务器的公钥进行加密,只有服务器用自己的私钥才能解密。但如果服务器用私钥对数据进行加密,则所有人都可以用公钥进行解密,这是不安全的。

HTTPS的解决方案是这样的:用非对称算法随机加密出一个对称密钥,然后双方用对称密钥进行通信。具体来说,就是客户端生成一个随机密钥,用服务器的公钥对这个密钥进行非对称加密,服务器用私钥进行解密,然后双方就用这个对称密钥来进行数据加密了。

(2)校验双方身份的真实性
上面说了加密,保证了数据不能被他人读取,但通信的双方怎样校验对方的身份呢?HTTPS使用了数字证书,数字证书就是身份认证机构(Certificate Authority)盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名),这一行为表示身份认证机构已认定这个人。证书的合法性可以向CA验证。

CA证书(身份证) 证明自己是自己的一个证书
CA认证机构(公安局系统)

数字证书主要包含以下信息:

  • 证书颁发机构
  • 证书颁发机构签名
  • 证书绑定的服务器域名
  • 证书版本、有效期
  • 签名使用的加密算法(非对称算法,如RSA)
  • 公钥

客户端收到服务器的响应后,先向CA机构验证证书的合法性(根据证书的签名、绑定的域名等信息),如果校验不通过,浏览器会中止连接,向用户提示证书不安全。

证书的制作方法是公开的,任何人都可以自己制作证书,但不向CA申请,即得不到CA认证,所以访问某些网站时,浏览器会有证书不合法的提示。

(3)数据的完整性
网络传输过程中需要经过很多中间节点,虽然数据无法被解密,但可能被篡改,那如何校验数据的完整性呢?通过校验数字签名,流程见下图:

数字签名校验

首先来了解下哈希算法,哈希算法能够将任意长度的字符串转化为固定长度的字符串,该过程不可逆,可用来作数据完整性校验。

服务器在发送报文之前做了3件的事:

  • 用哈希算法对报文提取定长摘要
  • 用私钥对摘要进行加密,作为数字签名
  • 将数字签名附加到报文末尾发送给客户端

客户端接收到报文后:

  • 用公钥对服务器的数字签名进行解密
  • 用同样的算法重新计算出报文的数字签名
  • 比较解密后的签名与自己计算的签名是否一致,如果不一致,说明数据被篡改过。

同样,客户端发送数据时,通过公钥加密报文摘要,服务器用私钥解密,用同样的方法校验数据的完整性。

2.4 HTTPS通信的大致过程
HTTPS通信过程

客户端将自己支持的加密算法发送给服务器,请求服务器证书;

服务器选取一组加密算法,并将证书返回给客户端;

客户端校验证书合法性,生成随机对称密钥,用公钥加密后发送给服务器;

服务器用私钥解密出对称密钥,返回一个响应,HTTPS连接建立完成;

随后双方通过这个对称密钥进行安全的数据通信。

2、原理

三、Charles优点

(1)跨平台:Windows、Mac、Linux
(2)半免费:免费版有限制,延时和运行时间
(3)Charles支持按照域名和接口查看报文,简洁明了
(4)支持反向代理
(5)网络限速可选择网络类型(3G、4G、10M等)简便,fidder需要填写对应网络的上传和下载的速率
(6)可以解析AMF协议—>一般用不到

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Charles抓包程序是一种用于调试和分析网络通信的工具。当Charles抓包程序遇到503错误时,意味着在网络通信的过程中发生了服务器错误或服务不可用的情况。503错误是HTTP协议中定义的一种服务器响应状态码,表示服务器当前无法处理请求。罗列以下可能导致Charles抓包程序遇到503错误的常见原因: 1. 服务器过载:当服务器负载过高或资源不足时,会导致服务器无法处理请求,从而返回503错误。 2. 维护或升级:服务器可能处于维护或升级状态,在此期间暂时关闭服务,返回503错误。 3. 服务器程序错误:服务器上的应用程序可能存在错误或bug,导致服务器无法正常处理请求,进而返回503错误。 4. 网络问题:网络连接不稳定、传输中断或DNS解析错误等问题都可能导致Charles抓包程序无法正常连接服务器,最终返回503错误。 当Charles抓包程序遇到503错误时,我们可以进行以下操作: 1. 检查网络连接:确保网络连接正常,尝试重新连接服务器,如果问题仍然存在,那么可能是服务器端的问题。 2. 检查服务器状态:确认服务器是否处于维护状态或资源不足,如果是,则需要等待服务器恢复正常。 3. 确认服务器程序是否正常:如果其他用户可以正常访问该服务器,那么可能是Charles抓包程序的设置或配置有误,可以尝试重新配置或更新Charles抓包程序。 总结来说,当Charles抓包程序遇到503错误,我们需要先确认网络连接正常,然后检查服务器状态和程序是否正常,并尝试适当的解决方法。如果问题仍然存在,可能需要联系服务器管理员或Charles抓包程序的支持团队以获得更进一步的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值