Charles抓包工具的使用

一.简介

  Charles是一款代理服务器,通过成为电脑或者浏览器的代理,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据,该软件是用Java写的,能够在Windows,Mac,Linux上使用。

二.安装

  1. 安装Charles的时候要先装好Java环境;
  2. 下载安装Charles;(该软件是收费的可以下载试用版,或者自己破解)
  3. Charles会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了(如果配置的有问题,可能会出现打开软件,浏览器就无法上网了,如果不需要配置浏览器的代理,需要手动进入浏览器的设置-代理设置页面关闭代理的设置即可;)

三. 抓包配置

1.浏览器抓包:
(1)浏览器端的设置:
在浏览器的设置-高级设置-代理设置-打开代理设置中,手动设置代理-输入地址和端口号(地址和端口号在Charles上查看)
在这里插入图片描述
地址和端口号的查看,端口号默认是8888,可以在“Proxy”->“Proxy Settings”中进行修改
在这里插入图片描述
在这里插入图片描述
(2)Charles上的设置
首先需要将Charles的代理功能打开。在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888,并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图所示:
在这里插入图片描述在这里插入图片描述
抓包时需要确保打开了浏览器的代理抓包,如下图
在这里插入图片描述
成功抓包的界面
在这里插入图片描述
2.移动端抓包
(1)Charles上的设置步骤同上,和浏览器抓包中的设置一样
首先需要将Charles的代理功能打开。在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888,并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图所示:
在这里插入图片描述
在这里插入图片描述
(2)移动端的设置
手机要与电脑在同一个WiFi下(并关闭电脑防火墙、其他代理或者翻墙软件),在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888
在这里插入图片描述
配置好后,charles会有弹框提示,点击Allow允许即可
在这里插入图片描述

四.Https请求抓包

默认我们是看不到https的请求数据的。我们需要安装证书
Charles上的设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Proxy->Proxy Settings,设置如下在这里插入图片描述
Proxy->SSL Proxying Settings,勾选Enable SSL Proxying;然后设置要抓取的https接口,点击add,Host 输入*,代表抓取所有的,可以换成你需要抓取的的接口ip,Port:443安全服务端口(HTTPS);配置如下图
在这里插入图片描述
在这里插入图片描述
移动端设置:
iOS客户端安装证书
1、打开Charles,选择help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser
2、手机连接电脑代理,打开safari,输入网址:chls.pro/ssl
3、手机弹出提示:此网站正尝试打开“设置”已向您显示一个配置描述文件。您要允许吗?忽略|允许,选择允许,安装描述文件,并信任
4、iOS10.3以上的手机需要在:设置→ 通用 → 关于本机 → 证书信任设置→ 找到charles proxy CA证书,打开信任即可(证书在ios手机安装后,在关于本机-证书信任设置,在此页面把证书开启即可)
在这里插入图片描述
android(安卓)客户端安装证书
安卓手机类型众多,所以有些不太一样
方法一:
1、打开Charles,选择help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser
2、手机连接电脑代理,打开浏览器,输入步骤1中弹框中的网址:chls.pro/ssl
3、手机弹出提示:安装配置描述文件。您要允许吗?忽略|允许,选择允许,即可
方法二:
1、打开Charles,选择help→SSL Proxying→Save Charles Certificate,将证书导入到手机中
2、导入后直接点击安装证书即可,
方法三:(小米手机不知道是什么问题下载的证书无法打开,可以通过下面的方法)
1、通过电脑访问chls.pro/ssl,自动下载证书,但是格式是.pem
2、手动修改证书后缀名为.crt,然后导入到手机的根目录中
3、进入手机设置 → 更多设置 → 系统安全 → 从存储设备安装 → 选择该证书,安装证书即可
常见手机:小米手机,华为手机,在安装证书时需要设置手机锁屏密码

抓包原理说明;
如果是HTTP请求,因为数据本身并没加密所以请求内容和返回结果是直接展现出来的。
但HTTPS是对数据进行了加密处理的,如果不做任何应对是无法获取其中内容。所以Charles做的就是对客户端把自己伪装成服务器,对服务器把自己伪装成客户端:
1.Charles拦截客户端的请求,伪装成客户端向服务器进行请求
2.服务器向“客户端”(实际上是Charles)返回服务器的CA证书
3.Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)
4.客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
5.Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)
6.服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
7.Charles拦截服务器的响应,替换成自己的证书后发送给客户端
当然,如果用户不选择信任安装Charles的CA证书,Charles也无法获取请求内容。还有一种,如果客户端内置了本身的CA证书,这时如果Charles把自己的证书发送给客户端,客户端会发现与程序内的证书不一致,不予通过,此时Charles也是无法获取信息的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值