Charles 抓包工具使用详细介绍


发布时间:2023-10-01 10:18:26 作者:有勇气的牛排 阅读(1) 工具类

1 前言

1.1 介绍

Charles是一款强大的网络抓包工具,主要用于分析和调试网络流量。它适用于多种操作系统,包括 Windows、macOS和linux。

Chaels可以捕获 http和https协议的请求和响应,帮助开发人员和测试人员了解应用程序与服务器支架的通信情况,以及识别潜在的问题。

官网:https://www.charlesproxy.com/

1.2 主要功能介绍

  1. 抓包功能:Charles可以接货设备和服务器之间的网络通信,无论是浏览器、移动应用还是其他网络请求,都能够捕获和显示相关的请求和响应。
  2. 支持多种协议:Charles主要用于http和https协议的分析,但它还支持许多其他网络协议,如WebSocket、FTP等。
  3. SSL代理和解密:对于https流量,charles可以作为中间人代理,使得开发人员可以查看加密后的数据,这对于调试和排查安全问题非常有帮助。
  4. 请求和响应查看:Charles以直观的方式展示请求和和响应,包括头部信息、主体内容、响应状态码等。这有助于开发人员深入了解通信细节。
  5. 重发和编辑请求:在Charles中,您可以编辑请求的内容并重新发送,从而测试不容的情况、这对于模拟特定的情景或修复问题非常有用。
  6. 短点调试:Charles允许您设置短点,以便在特定的条件下中断流量并进行调试。这对于分析特定请求或响应的行为非常有帮助。
  7. 自动化和脚本:Charles支持使用 API 进行自动化操作。您可以编写脚本来处理请求、响应和会话,从而简化重复性任务。
  8. 限速和模拟:Charles 可以模拟不同网络条件,包括延迟、带宽限速等。这有助于测试应用在不同网络环境下的性能表现。
  9. 过滤和搜索:工具内置了过滤器和搜索功能,可以帮助您更轻松地找到特定的请求、响应或其他网络数据。
  10. 映射远程:您可以使用 Charles 将本地流量映射到远程服务器,或将远程流量映射到本地开发环境,以便于分析和调试。
  11. 会话跟踪:Charles 跟踪整个会话的流量,让您可以在多个请求和响应之间进行导航和分析。

哈喽,大家好,我是[有勇气的牛排](全网同名)🐮🐮🐮

https://www.couragesteak.com/article/441

有问题的小伙伴欢迎在文末[评论,点赞、收藏]是对我最大的支持!!!。

2 下载安装

官方版本:https://www.charlesproxy.com/download/

3 Web 抓包(https)

web抓包相对简单,启动 Charles 后即可抓包,重点是要配置 https。

3.1 配置 SSL

这里我们需要为 Charles 安装 SSL 证书。

【Help】–> 【SSL Proxying】–> 【install Charles Root Certificate】

image.png

image.png

3.2 开启代理监听

【Proxy】–> 【SSL Proxying Setting】

  • 勾选【Enable SSL Proxying】

  • 输入:

    * *:443
  • 最后点击 【ok】保存

image.png

4 App 抓包

由于部分app已经在很多模拟器上做了限制,因此采用 Charles 作为代理,来对手机app抓包,是一个不错的方案。

  • https也需要安装

4.1 PC端配置

4.1.1 查看本地 ip:

  • 【Help】–> 【local IP Addresss】

4.1.2 配置暴露端口号

步骤:【Proxy】–> 【Proxy Setting】,这里我们配置端口号为 8888(默认)。

image.png

4.2 手机端配置(连接)

… --> 【编辑当前wifi】–>【代理】–> 【手动】

主机名:ip

端口:8888

4.3 安装手机https协议

如果不安装,https协议的请求则会爆出: <unknow>

4.3.3 安装整证书

配置步骤:

【Help】–> 【SSL Proxying】–> 【Install Charles Root Certificate On a Mobile Device or Remote Browser】

image.png

访问:chls.pro/ssl

证书导出

1、保存pem文件:【Help】–> 【SSL Proxying】–> 【Save Charles Root Certificate】

2、然后获取pem文件的hash值,作为名字

openssl x509 -inform PEM -subject_hash_old -in ./charlesRoot.pem

3、修改名称为:哈希值.0

4、adb导入

adb shell mount -o remount,rw /system adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /system/etc/security/cacerts/ adb shell chmod 777 /system/etc/security/cacerts/cc4dc6b5.0 adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /system/etc/security/cacerts/ adb push D:/git仓库/blog_article/python爬虫/cc4dc6b5.0 /storage/emulated/0/00
adb kill-server
adb start-server
adb remount

4.3.1 http连接

设置–>wifi -->手动

4.3.2 代理软件

代理类型socks5

端口:8889

5 过滤操作

  1. 过滤器面板: 在Charles工具的主界面上,您会看到一个"Filter"选项卡,点击它可以打开过滤器面板。在这里,您可以设置不同类型的过滤规则。
  2. 域名过滤: 通过域名过滤,您可以只显示与特定域名相关的请求和响应。在过滤器面板中,您可以输入域名,然后Charles将只显示与该域名相关的网络流量。
  3. 路径过滤: 如果您只关心特定路径下的请求和响应,您可以设置路径过滤。输入路径信息后,Charles会仅显示与该路径相关的流量。
  4. 响应代码过滤: 您可以选择只显示具有特定HTTP响应状态代码的请求和响应。这对于快速查找错误或特定情况下的网络流量非常有用。
  5. 方法过滤: 如果您只关心特定HTTP请求方法(如GET、POST等),您可以设置方法过滤以仅显示这些方法的请求和响应。
  6. 内容类型过滤: 通过内容类型过滤,您可以只显示特定媒体类型的请求和响应,如JSON、XML等。
  7. 会话过滤: Charles可以根据会话来过滤流量,以便仅显示特定会话的请求和响应。这对于跟踪特定用户或操作的网络通信非常有用。
  8. 自定义规则: Charles还提供了一些高级过滤规则选项,您可以使用正则表达式等方式创建自定义过滤规则。
  9. 过滤和查找组合: 您可以结合使用过滤和查找功能,以便更精确地找到您感兴趣的请求和响应。
  10. 过滤的启用和禁用: 在过滤器面板中,您可以启用或禁用不同的过滤规则,以便根据需要动态调整过滤设置。

5.1 网络过滤

方案一:

在主界面的左下角,我们可以看到有个 Filter,在这里输入需要过滤的关键字即可。

方案二:

选择【Proxy】–> 【Recording Settings】–【include】,然后填入相关信息。

image.png

6 限速和模拟

步骤:【Proxy】–> 【Throttle Setting】

  • Enable Throttle:启用 节流
  • Only for select host:仅适用于选定的hosts

image.png

7 短点调试

  1. 开启短点调试:【鼠标右键会话】–> 【短点】 (菜单栏的 六边形的按钮会变红,带对勾)
  2. 设置短点:【Proxy】–>【Breakpoint Setting】

8 重发和编辑请求

8.1 重复发送

选择会话 --> 【点击 重复按钮】

8.2 高级重复发送(压力测试)

选择会话 --> 【右键 高级重复】

案例:重复发送10次请求

image.png

8.3 Compose 编写/撰写 接口

这个适用于,编辑接口的不同参数请求

步骤:选择会话 --> 【右键 Compose/撰写】

9 远程映射

单个会话映射:

【选择会话】–> 【远程】

批量映射:

【工具】–> 【远程映射】–>【勾选 启用远程映射】

image.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
目录
adfas df
专栏