Charles抓包Android应用Https

2021-02-26  本文已影响0人  zii4914

1.前言

以前刚接触Android时候用过Fiddler抓包api学习。转眼几年过去了,现在有需要用到抓包,再用回Fiddler发现不太好用,大部分Https都是提示Tunnel To还有443,看不到接口调用和数据。
朋友推荐Charles,今天就学习了一下,写个文章总结和记录。

2.Charles

Charles是一款收费的抓包工具,但是安装之后,默认有30天试用期。付费的区别是,无期限限制,打开程序不用等10s(故意恶心免费用户的?/狗头)。

目前提供win64,macOS,Linux64版本。

3.安装

官网 下载并安装程序。本人使用Win10,后面都以Win10为例。
安装过程没什么好说的,选择安装位置,一直下一步到结束。

题外话,虽说大天朝虽然目前网络环境渐渐正版化,但是发现这个软件还有一些提供破解的/手动狗头。这个破解比较暴力,手速快点1min不到,就替换个Charles.jar文件。后面的 链接 与我无关,希望下次用的时候这个网址别404了,各位下手轻点。

4.一些配置

打开程序之后,默认会开启 Windows proxy,抓取 windows 的访问请求。如果想只抓取手机的可以在 Proxy->proxy setting->Windows 中关闭默认启用。

5.抓包手机Https(Android )

5.1 安装根证书

help->SSL Proxy->Install Charles Root Certificate,选择 安装证书 ,一直到下一步到到安装完成。

5.1 手机上安装证书

步骤

  1. 在windows的Charles程序中, help->SSL Proxy->Install Charles Root Certificate on a Mobile Device or Remote Browser
    提示内容的意思是,确认手机使用Charles的代理(主机地址:端口号),然后访问 chls.pro/ssl 去下载并安装证书。

    提示内容
  2. 按照提示内容操作,首先电脑和手机在同一个局域网中,也就是电脑和手机连接同一个网络。可以连接相同的Wifi,或者电脑用网线,手机用wifi但是确保是同一个网络。

  3. 手机 已连接的wifi 设置中,设置手动代理,代理内容在第一步的提示框中给出了。填入电脑主机地址和端口号即可。

  4. 设置完代理后,会在windows端Charles得到手机连接提示,选择 Allow 允许!
    如果手快点了 Deny 拒绝,在Charles的 Proxy->Proxy Setting 中更改端口号,然后重启Charles,手机重新配置一下手动代理的端口号,就会重新得到提示。

    连接提示,别人的图
  5. 手机浏览器访问 chls.pro/ssl ,下载证书文件。我下载的文件名是 charles-proxy-ssl-proxying-certificate.pem,点击会提示安装证书。
    在MIUI12中点击文件没识别出证书,需要到 设置->密码与安全->系统安全->加密与凭证,然后选择 从存储设备安装,找到你下载的证书的文件路径地址,选择证书,就会执行安装操作。安装后,在 设置->密码与安全->系统安全->加密与凭证->信任的凭证->用户 能够看到刚刚安装的的证书。

5.2 Charles的SSL代理设置

Charles进入 Proxy -> SSL Proxying Settings 中,勾选 Enable SSL Proxy ,填入 Host 目标域名,和 Port端口号。

值得一说的是,在侧边的 Notes 还非常有人性化的提示,我就是根据这个提示设置了的。

手动添加

5.3 关于Android7.0+的Https都是Unkown

这是由于Android7.0+的Https启用了SSL验证,需要绕过该验证才能正确抓取。解决也简单 Xpose + JustTrustMe。由于现在的手机基本都不给Root,所以不建议使用 Xpose 了,改为 VirtualXpose
使用也简单,步骤

  1. 先从 官网 下载 VirtualXpose的apk安装包。
    注意:0.19.0以上版本只支持安装64位应用(安装目标app时如果是32位会提示不支持),若你的应用是32位,需要安装下面的0.18.2版本。
  2. 然后到 Github 上下载 JustTrustMe 的apk安装包,这个是 Xpose 框架,用来绕过Android的 SSL 机制。
  3. 在Android手机上安装VirtualXpose的apk和 JustTrustMe的apk。
  4. 打开VirtualXpose,在设置中,克隆 JustTrustMe 和 需要抓包的应用。
  5. 设置的框架中勾选 JustTrustMe,然后到设置中重启 VirtualXpose ,让框架生效。
  6. 打开需要抓包的应用,就可以在Charles中抓到Https请求了。
上一篇下一篇

猜你喜欢

热点阅读