HTTP(S) 抓包工具 Charles 的使用


#乱炖


简介

本质上是一个代理工具,可以用来分析 HTTP/HTTPS 请求,用于研发测试过程中的问题定位等场景。

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

有 mac、windows、linux 版本。收费软件,可以试用一段时间。

截至 2022-06,最新版本是 4.6.2 。

官方介绍:

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

安装

Charles 是基于 Java 写的,需要先安装 Java。

在官网下载安装包,和其他软件类似的方法进行安装。

使用

以 mac 为例:

  1. 开启代理服务。charles 打开后默认是开启代理服务的。
  2. 代理服务监听端口设置。菜单栏 -> Proxy Setting -> Proxies 。默认端口是 8888 ;
  3. 浏览器将 proxy 改为 127.0.0.1:8888 。chrome 可以使用 SwitchyOmega 插件设置代理;

然后在浏览器中访问一些网页,在 Charles 中就可以看到有哪些 HTTP(S) 请求发生。

若要简单点,可以设置全局 HTTP(S) 代理为 charles :

菜单栏 -> Proxy -> macOS Proxy ;

限制抓包的网址

用 charles 作为代理后,所有的网络访问都会经过 charles ,charles 会录制所有监听的数据,并展示出来。 但是展示的太多,噪声会比较多,不方便定位问题。

可以限制录制的网址。

限制方式:

菜单栏 -> Proxy -> Recording Settings -> Include ,添加网址即可。

支持简单的正则表达式,比如 https://*.letianbiji.com

若网址记录为空,则监听所有网址。 修改后,重启 charles。

让 HTTPS 展示明文

默认情况下,charles 监听到的 HTTPS 请求和响应都是加密的。可以通过一些设置让 charles 展示明文。

原理是 HTTPS 中间人攻击。在操作系统中安装 charles 生成的证书,并信任该证书,就可以让 HTTPS 展示明文了。

生成和安装证书

macOS

安装:

菜单栏 -> Help -> SSL PRoxying -> Install Charles Root Certificate

安装后,打开 mac 自带的的 钥匙串访问 应用,在系统钥匙串中,找到 Charles Proxy CA 名字的证书,右键菜单点击 显示简介 ,将证书设置为始终信任

如何增加解析明文的网址?

方式1

菜单栏 -> Proxy -> SSL Proxying Settings 。在 SSL Proxying 标签下添加网址:

方式2

在 charles 主界面,对于展示的录制的网址,右击,菜单中选择 Enable SSL Proxying

mock 响应数据

方式1: 将指定网址的请求转发到指定的mock服务地址

菜单栏 -> Tools -> Map Remote

方式1: 将指定网址的请求用本地指定的文件作为响应

菜单栏 -> Tools -> Map Local

对手机进行抓包

原理是将手机的代理设置为 charles 的代理服务地址。和电脑上设置charles本质是一样的。

手机设置代理后,charles 会弹窗询问是否允许使用,设置为允许即可。若误点了,可以在菜单栏配置:Proxy -> Access Control Settings

设置流程

前提条件

手机和安装 charles 的电脑网络在同一个网络中,比如连接同一个路由器。

手机设置代理

查询charles所在电脑的 ip : 菜单栏 -> Help -> Local Ip Address

确定 charles 代理服务监听的端口: 菜单来 -> Proxy -> Proxying Settings

手机设置代理地址。

安装 HTTPS 证书以抓包 HTTPS 明文

打开 菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 。会提示在手机上打开网址 chls.pro/ssl 安装证书。

1、手机访问网址 <chls.pro/ssl> 。
2、会提示下载证书,下载后安装即可。不同的手机安装方式会不一样,不详述。



( 本文完 )