Charles抓包——从入门到熟练

Charles是一款代理服务起,通过成为电脑或者浏览器的代理,截取请求和请求结果以达到分析抓包的目的。

主界面介绍

开发语言:Java

适用系统:Windows,Mac,Linux

主要功能:

  • 支持SSL代理,可以截取分析SSL的请求;
  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求;
  • 支持AJAX调试。可以自动讲 Json 或者 xml 数据格式化,方便查看;
  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting 信息格式化,方便查看
  • 支持重发网络请求,方便后端调试;
  • 支持修改网络请求参数;
  • 支持网络请求的结果并动态修改;
  • 检查HTML,CSS和RSS内容是否符合W3C标准;
开始抓包

1、将电脑设置为代理

​ Proxy —> Windows Proxy

​ 此时,通过浏览器请求的网址都会出现在上面,如果你发现返回的是乱码,首先看是在http请求还是https请求:

  • ​ 如果是http请求,那么应该就是返回来的中文乱码,解决方案是找到该软件显示包内容,Contents目录下的info.plist,打开文件找到vmoption,添加 -Dfile.encoding=UTF-8即可。

  • ​ 如果是https请求,则需要安装 Charles的CA证书:Help—>SSL Proxying —> Install Charles Root Certificate

  • ​ 如果抓取手机上的https请求,需要在手机上也安装CA证书:

    • 点击Charles顶部菜单:Help —> SSL Proxying —> Install Charles Root Certificate on a Mobile Device or Remote Browser,即可看到Charles弹出的安装教程。
CA证书安装:
ios移动端设置:

safari浏览器打开网址:chls.pro/ssl
下载安装证书。
设置->通用->描述文件->选择描述文件,安装。
设置->通用->关于本机->证书信任设置->选择证书,信任。
在这里插入图片描述

android 移动端设置:

浏览器打开网址:chls.pro/ssl
下载安装证书。

小米:

​ MIUI12 设置——密码与安全—系统安全—加密与凭据—从存储设备安装

(miui10及以上)点击设置-更多设置-系统安全-加密与凭据-从存储卡安装文件
(miui10一下)点击设置-更多设置-系统安全-从存储卡安装文件

2、打开Charles代理设置:

​ Proxy —>Proxy settings,设置端口号,默认5389即可,并且勾选Enable transparent HTTP proxying

在这里插入图片描述

3、手机和电脑连接在同一局域网上,并在网络上设置http代理
在这里插入图片描述

一、使用功能

1、过滤

方法1:

​ Proxy—>Recording Settings,选择Include栏,选择 Add ,然后填入需要监控的协议,主机地址,端口号

方法2:

​ 在左侧structure中,右键某个网址,选择 Focus,其他请求就会被放到 other Host的文件夹中,从而实现过滤。

2、断点

右键网址,选择 BreakPoint即可断点某一请求。

​ 在Charles发起一个请求的时候,给某个请求大一个断点来观察或者修改请求或者返回的内容,注意 请求超时的时间问题。
在这里插入图片描述

3、模拟低速网速

Proxy —>Throttle Setting:

选择 Enable Throttling,在Throttle Preset 下选择网络类型

​

4、请求重定向

1、将指定的网路请求重定向到另一个网址请求地址

Tools —>Map Remote

​ 分别填写网络重定向的源地址和目标地址们对于不需要限制的条件,可以留空。

image-20210611113455246

2、将指定的网络请求重定向到本地文件

Tools —> Map Local

​ 需要填写重定向的源地址和本地目标文件。对于有一些复杂的网络请求结果,我们可以先使用 Charles 提供的 “Save Response…” 功能,将请求结果保存到本地(如下图),然后稍加修改,成为我们的目标映射文件。
在这里插入图片描述

​ 将一个指定的网络请求通过 Map Local 功能映射到了本地的一个经过修改的文件中。
在这里插入图片描述

​ Map Local 在使用的时候,有一个潜在的问题,就是其返回的 Http Response Header 与正常的请求并不一样。这个时候如果客户端校验了 Http Response Header 中的部分内容,就会使得该功能失效。解决办法是同时使用 Map Local 以下面提到的 Rewrite 功能,将相关的 Http 头 Rewrite 成我们希望的内容。

5、内容替换

Tools —> Rewrite Settings

适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。

6、给服务器做压力测试

​ 选择一个测试的网络请求,右击选择 Repeat Advanced,在弹出的对话框中选择打压的并发线程数以及打压次数。
​

7、反向代理

Proxy —> Reverse Proxies Settings

​ 允许我们将本地的端口映射到远程的另一个端口上。例如,在下图中,我将本机的 8080 端口映射到了远程(http://pangao1990.github.io)的80端口上了。这样,当我访问本地的 8080 端口时,实际返回的内容会由 http://pangao1990.github.io 的 80 端口提供。
在这里插入图片描述

二、遇到问题

1、手机抓包出现Unknown

参考帖1 3

参考帖2 更改安卓代码AndroidManifest.xml等

华为云参考帖

​ 出现SSLHandshake:Received fatal alert:certificate_unknown

​ 原因:安卓7.0系统安全策略问题
在这里插入图片描述在这里插入图片描述

原因:CA证书的问题,一定要使用同一局域网中,设置好手动代理之后下载CA证书并安装。

2、Proxy菜单

​

3、抓包借口测试相关HTTP状态码说明
Filter过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求
Overview查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。
URL进行网络请求的链接;
Status当前状态,complete表示请求完成;
Responce Code返回码。不同的接口,不同的请求结果,返回码都不同;
Protocol:使用的协议;
Method:请求方式,如GET请求,POST请求等;
Kept Alive:判断当前是否正在链接(活跃);
Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;
Client Address:客户端的IP地址;
Remote Address:远程服务器的IP;
Timing:
Request Start Time:请求开始的时间;
Request End Time:请求结束的时间;
Response Start Time:返回开始的时间;
Response End Time :返回结束的时间;
Duration :总时间;
Size:
Request Header :请求的头部大小;
Response Header:返回的头部大小;
Request :请求发送的大小;
Response:返回数据的大小;
Total:所有数据大小;
Request Compression :请求压缩;
Response Compression :返回压缩;
Request :查看请求内容(底下的Headers,Query String,Cookies,Raw。)
Headers:发送请求的头部信息;
Query String :发送参数列表;
Cookies:浏览器缓存;
Raw:发送的原生数据,包括了头部和参数;
Reponse :查看响应内容
Headers:是返回的头部信息;
Text:返回信息(除去头部)后的文本;
Hex:返回信息的16进制表示;
XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON;
XML Text:如果你返回JSON,这里会显示JSON Text;
Raw:返回的所有原生数据,包括头部;
Summary:查看发送数据的一些简要信息(主机,状态码,数据的类型,header和body大下,加载时间,总时间)
Chart:Summary中简要信息以图表形式展示
Notes:其他信息

二、http换socket5

1、charles设置对比
httpsocket5备注
在这里插入图片描述在这里插入图片描述设置入口: 在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Charls是一款常用的网络工具,可以用于分析和调试网络流量。以下是一个简单的Charls入门指南: 1. 下载和安装Charls:你可以在Charls官方网站上下载适合你操作系统的版本,并按照安装向导进行安装。 2. 配置网络代理:在使用Charls之前,你需要将网络代理配置到Charls中。打开Charls,并点击菜单栏中的“Proxy”选项,选择“Proxy Settings”。在弹出的窗口中,配置代理端口和其他相关设置。 3. 设置设备代理:根据你的操作系统,设置设备代理以将网络流量导向Charls。这可以在系统设置中完成。例如,在iOS设备上,你可以在“设置”>“无线局域网”>“HTTP代理”下配置。 4. 开始:确保Charls正在运行,并且设备代理已经设置好。在你的设备上进行一些网络请求或浏览网页,Charls将会自动捕获和显示相应的网络流量。 5. 分析流量:Charls会将捕获的流量以列表形式显示在界面上。你可以选择特定的请求或响应,然后查看详细信息,括请求头、响应头、请求体和响应体等。 6. 过滤和搜索:如果你只想查看特定类型或特定域名的流量,可以使用Charls提供的过滤和搜索功能。这些选项可以帮助你更好地分析和调试网络请求。 这只是Charls的入门指南,Charls还有许多强大的功能和高级配置选项,可以帮助你更深入地了解和分析网络流量。你可以在官方文档或其他教程中进一步学习和探索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值