鼠年全马铁人挑战 WEEK 39:封包测试工具 - Charles (四)

           Photo on charlesproxy.com


前言

前几周分别介绍了 Charles 选项栏中的 Proxy 与 Tools
而在这一周将会分享如何使用 Charles 来拦截封包
并分享 Charles 的工具列 (虽然与前几周的内容一样 但还是稍微介绍一下)

分享重点

  • 通过 Charles 进行电脑端拦截封包
  • 通过 Charles 进行手机端拦截封包
  • 通过 Charles 进行 HTTPS 拦截封包
  • 介绍 Charles 工具列

通过 Charles 进行电脑端拦截封包

Charles 会自动配置浏览器和工具的代理设定
换句话说打开 Charels 同时就已经是拦截封包的状态了
但是还是需要确保以下两点:

  1. 确保 Charles 处於 Start Recording 状态
  2. 确保 macOS proxy 为启用状态 (将 Charles 设定为系统代理)

    藉由选项栏中依序选择 Proxy > Proxy Settings > macOS
    启用 MacOS proxy: Enable macOS proxy
    但是如果只想要抓取 App 的封包建议可以取消勾选该选项

通过 Charles 进行手机端拦截封包

手机拦截封包的原理和上述的 PC 类似
需要将手机通过把网络委托给 Charles 进行代理与服务端进行对话

  1. 手机与电脑须在同个区域网路,IP 不一定要相同,但要在同个路由器底下
  2. 电脑端设定内容:
    a. 关闭电脑端的防火墙
    b. 打开 Charles 的代理功能
        藉由选项栏中依序选择 Proxy > Proxy Settings > Proxies
        预设埠是 8888 也可以根据实际情况进行修改或启用动态连接埠
        勾选 Enable transparent HTTP proxying

    c. 如果只需拦截手机封包,可以取消勾选 PC 端拦截封包提到的 macOS proxy
  3. 手机端设定内容:
    a. 藉由选项栏中依序选择 Help > Local IP Address 来查看本机的 IP 位址

    b. 设定手机端的 WIFI 代理,输入电脑 IP 和 Charles 的代理端口
       
  4. 如果装置是第一次连线 Charles 会出现是否允许 IP 进行连线的提示视窗

通过 Charles 进行 HTTPS 拦截封包

HTTPS 的封包拦截也分为电脑端与手机端
以下将分别介绍两者的设定

  • 电脑端
    1. 安装 Charles 的 SSL 凭证:

      藉由选项栏中依序选择 Help > SSL Proxying > Install Charles Root Certificate
      点击尚未被信任的 Charles Proxy 凭证

      开启 "信任" 选单,点击 "使用此凭证时" 的下拉式选单,并选择 "永远信任"

      确认 Charles Proxy 凭证已被信任

    2. 设定 SSL 代理的内容

      藉由选项栏中依序选择 Proxy > Start Proxying Settings
      勾选 Enable SSL proxying

    3. 完成以上步骤,就可以进行 HTTPS 封包拦截了
  • 手机端
    1. 安装 Charles 的 SSL 证书:

      藉由选项栏中依序选择 Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser
      前往提示视窗中所提到的 http://chls.pro/ssl (必须先完成手机的代理)

    2. 安装完成後开启後进行设定

      凭证名称可以命名比较容易辨识的,例如 "Charles SSL"
      下方认证使用的部分选择 "VPN与应用程序"
      最後点击 "确定" 进行安装

    3. 完成以上步骤,就可以进行 HTTPS 封包拦截了

介绍 Charles

工具列

Charles 上方的工具列中提供了几个较常使用的功能
以下将依左至右一个一个的简单介绍各自的功能

  • Clear the current Session:
     清除捕获到的所有请求
  • Start/Stop Recording:
     红色(启用状态):正在捕获请求
     灰色(停用状态):停止捕获请求
     可在选项栏中依序选择 Proxy > Start/Stop Recording
     快捷键:command+R
  • Start/Stop SSL Proxying:
     闭锁(启用状态):启用 SSL Proxying
     开锁(停用状态):停用 SSL Proxying
     可在选项栏中依序选择 Proxy > SSL Proxying Settings... > SSL Proxying
     快捷键:command+L
  • Stop/Start Throttling:
     灰色(停用状态):停止网速节流
     绿色(启用状态):开启网速节流
     可在选项栏中依序选择 Proxy > Throttle Settings...
     快捷键:command+T
  • Disable/Enable Breakpoints:
     灰色(停用状态):尚未开启断点
     红色(启用状态):已经开启断点
     可在选项栏中依序选择 Proxy > Breakpoint Settings...
     快捷键:command+K
  • Compose a new request based on the selection:
     编辑修改选中的请求
  • Repeat selected requests:
     重复发送选中的请求
     快捷键:command+shift+R
  • Validate selected responses:
     检查验证选中的请求
  • Purchase a License:
     开启购买使用 Charles 页面 https://www.charlesproxy.com/buy/
  • Tools:
     较常使用的功能选单
  • Settings:
     较常使用的设定选单

结尾

因为小弟也是新手使用的分享文
所以介绍的内容可能有遗漏或是错误,还请各位大哥大姐提点
小弟将继续往下周迈进。 ─=≡Σ((( つ•̀ω•́)つ


参考文献

官方网站 (载点)


<<:  离开是为了面对更好的自己

>>:  Week37 -我当时害怕极了,原来Golang用指标是母汤的 [Server的终局之战系列]

Day23 - 铁人付外挂实作付款类别(二)- 发起付款请求

了解 WooCommerce 金流的基本架构後,我们来进行串接的实作,在开始前先回顾一下目前的外挂结...

Day17 - BST(Delete-Case3)

大家好,我是长风青云。今天是铁人赛第十七天。不知为何自从我离职後,反而每天进入了忙碌的阶段。(听我今...

Cloud Armor

关於Cloud Armor安全政策 首先也许从字面上或许不好意会什麽是Cloud Armor呢?其实...

我们的基因体时代-AI, Data和生物资讯 Day20-注释基因资讯的BED档案格式和bedtools

上一篇我们的基因体时代-AI, Data和生物资讯 Day19-分析和处理基因变异的档案格式VCF的...

【Day 01】认识资料结构 Data Structure ( 使用 JavaScript )

一、什麽是资料结构 ? 当我们撰写程序时,会宣告变数来存放资料,这些资料会储存在记忆体中,在我们需要...