美文网首页
Charles抓包Android应用Https

Charles抓包Android应用Https

作者: zii4914 | 来源:发表于2021-02-26 16:27 被阅读0次

    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端口号。

    • 可以在 Host填入 *,端口号填入 443,表示抓取所有Https(443端口)的请求。
    • 或者可以在监控窗口,看到地址后,右键选择 Enable SSL Proxying,就会自动添加到设置中了。

    值得一说的是,在侧边的 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请求了。

    相关文章

      网友评论

          本文标题:Charles抓包Android应用Https

          本文链接:https://www.haomeiwen.com/subject/mybmfltx.html