Charles 抓包HTTPS及断点设置

Charles 抓包HTTPS 配置&弱网模拟

一、HTTPS抓包

1.抓包mac上请求

1.1打开Charles——>Proxy——>macOS Proxy选上,Note:允许的模拟器直接公用电脑的网络,所以电脑上设置了就行。

如果在Charles上设置了还不行,还需在电脑上配置

1.2 在网络偏好设置——>高级——>代理勾选上代理项,如下图1                             

                                   图1

2.抓包iPhone上请求

  2.1抓取HTTP,配置代理:

手机上在连接的网络上——>配置代理——>选择手动,配置服务器(打开Charles的那台电脑IP)和端口(Charles——>Proxy Setting——>Proxies下的那个Port,同时勾选上Enable),这样可以了。

note:手机和电脑在同一个Wi-Fi下。

  2.2抓取HTTPS,需要安装证书:

2.2.1电脑上安装证书 

                                                      

                                                                                     图2

如图2,Charles——>Help——>SSL Proxying,点击”Install Charles Root Certificate”, 这个会自动安装对应的证书到电脑上,过会儿去KeyChain Access 上检查应该安装了证书。——>如果证书上是红色X表示没被信任,需要双击打开配置——>Trust,选择’Always Trust’,关掉对话框,红色就消失,证书被安装好且可用了.

          图3

2.2.2 手机上安装证书

如图2,点击’Install Charles Root Certificate on a Mobile Device…..’,——>弹出对话框 如图3时,——>在代理开启的情况下,在手机Safari 上输入对话框给出的URL,根据提示允许安装证书就行,直至安装成功。 

                 

                  图4

note:安装证书时,在同一个Wi-Fi下下载安装。

2.3 抓取HTTPS,配置Charles:

无论是抓取电脑或者手机上HTTPS请求时,要看到正常请求内容,需要配置Proxy——>SSL Proxying Setting, 勾选上Enable,如图5,Add Location(相关请求Host,这里Port都是443;没有特殊需求,一般Host设置为全部 *就行)

                               图5

Note:如果进行了上面三个主要步骤设置后,反而连不上网络,还需进一步手机上设置,设置——>通用——>关于本机——>证书信任设置——>开启信任证书。

3. 抓包android上请求

        3.1 在android上抓包,手机安装证书和电脑安装证书及代理设置一样。

在手机上安装证书时,选择’wlan’安装,如图6。但是最好还是抓包不了的话,再次安装’VPN和应用’;最后,再重启Charles和手机上应用。 

               图6

不过利用Charles抓包android系统上app的https,在很多手机系统版本上抓不到https了。

如果有app的源代码那可以通过在源代码里加上网络相关的权限就可以。

除了常见的安装一些证书之外,源代码的修改如下。

3.1.1 在androidmanifest.xml里加入

<application android:networkSecurityConfig="@xml/network-security-config"

…>

3.1.2 在res下建一个xml/network-security-config.xml文件,文件内容包括域名和证书相关,如下

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

    <domain-config>

              <domain includeSubdomains=“true”>//域名<domain>

             <trust-anchors>

            <certificates src="@raw/charles"/>

        </trust-anchors>

    </domain-config>

</network-security-config>

3.1.3 在res下放一个raw/charles.pem(证书文件) 

                              图7

        3.2. 如果上述说的修改原代码加权限的方法还是不行的话,就只能给手机root权限了,然后把证书放入系统证书目录下。

3.2.1 root手机

以小米为例

        A. 解锁bl(需要小米账号及小米解锁工具—只能在windows上运行)

        B. 进入recovery模式     — —— 利用第三方的recovery—twrp工具,手机中刷入twrp(需要对应手机型号和版本的twrp工具:小米_免费高速下载|百度网盘-分享无限制

                B.1. 利用命令手机刷入twrp:

   android手机刷机root教程 - SAUCERMAN

                B.2. 刷入完成后,进入twrp下的recovery

(如果进入的不是twrp下的recovery,可能重启命令不对,尝试 fastboot boot recoveryxxx.img)

        C. 刷入magisk并安装,获取root权限。

3.2.2 安装Charles证书

        A. 把抓包工具的证书hash

        B. 改写手机系统证书读写权限

        C. 把hash后的证书放入系统证书目录下

        D. 重启手机

https://aaaaaandy.github.io/blog/2021/02/01/charles/charles%E7%B3%BB%E7%BB%9F%E8%AF%81%E4%B9%A6%E5%AE%89%E8%A3%85/

最后,关闭代理:直接在手机上,同配置代理路径一样,选择关闭就行。

二、断点修改https中request和response

在可以抓包情况下,我们还可以对https请求进行修改request和response。

1. 实时截请求修改

在Charles下,【选中】某个要打断点session,【右键】,在弹出的弹框中,选择【Breakpoints】就默认给这条请求的request和response打上断点了。手机上/电脑上再次发出同样请求时,Charles会拦截,等待操作【excute】还是【edit request】或者【edit response】。

也可以通过Charles下,Proxy——>Breakpoints Setting..进行断点设置。比如就针对某个host、path等,也可以只截request或者response。

                          图8

2. 采用固定mock的response

有时候不想每次去修改response,可以采用固定的返回文件。在文件里写好response(符合response结构的json文件)

在Charles下,Tools——>Map Local…里设置,可以全匹配,也可以就匹配某个path下response。。。

                        图9 

三、网络(弱网)模拟

手机开启代理情况下

Charles——>Proxy——>Throttle Settings,选上Enable,同时在Throttle preset可以选择各种网络和网速,也可以在Location中设置只在某些host下网络模拟。

                   图10 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjhluxun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值