美文网首页
Charles抓取App应用包

Charles抓取App应用包

作者: Sharkchilli | 来源:发表于2021-04-05 21:21 被阅读0次

    前言

    本文对Android8系统抓包app的相关数据包为例.

    配置Charles

    去官网下载Charles
    https://www.charlesproxy.com/
    启动后配置

    首先设置代理
    菜单栏上选择“Proxy”->“Proxy Settings”


    image.png

    设置抓取所以端口的包
    Proxy -> SSL Proxying Settings -> SSL Proxying -> Enable SSL Proxying


    image.png

    电脑上证书安装


    image.png
    image.png
    image.png image.png image.png
    image.png
    image.png

    手机上配置

    先wifi设置代理

    确保手机与电脑在同一网络下能ping通,使用ipconfig查看自己电脑的ip


    image.png

    在手机打开wifi设置,设置wifi代理为手动

    image.png

    主机名写我们pc的ip,端口写前面配置的端口
    手机、Charles匹配成功后,Charles工具显示弹窗,询问是否允许,点击Allow按钮

    image

    此时就能进行http的抓包了

    手机上安装证书
    手机打开浏览器输入网址:chls.pro/ssl
    进入后会自动弹出下载,点击下载后的证书进行安装。这里手机不一样会有一些出入,不过基本都是让你设置一个密码后安装证书
    安装成功后你可以在手机的“信任的凭据”的“用户”中看到前面安装的证书

    到这里就可以进行https的抓包了。但app的包不能抓取。

    Android 7.0之后https的ssl pinning

    对于Android 7.0 (API 24) 之后,做了些改动,使得系统安全性增加了,导致:

    APP 默认不信任用户域的证书
    -》之前把Charles的ssl证书,安装到 受信任的凭据 -> 用户 就没用了,因为不受信任了
    只信任(安装到)系统域的证书
    导致无法抓包https,抓出来的https的请求,都是加了密的,无法看到原文了。app甚至会无网络。
    解决方案就是将证书放到受系统信任的系统证书中去(手机需root)

    这里需要使用OpenSSL计算出证书在系统证书目录的名称,修改证书名称后放入到/system/etc/security/cacerts/(具体操作下面的链接已经给出)
    注意操作system需要重新挂载

    mount -o rw,remount /
    //操作完成后恢复
    mount -o ro,remount /
    

    上面引用 adb重新安装失败-挂载:“系统”不在/ proc / mounts中

    Move Certificates

    我们就不用这么麻烦去计算移动了,Magisk已经提供了一个模块将我们的用户证书放入到系统证书,这个模块就是Move Certificates。

    下载该模块需要科学上网升级Magisk版本


    image.png

    安装后重启,就可以成功抓取到App的包了

    参考

    安卓使用charles抓包https报错
    charles证书安装
    app抓包利器:Charles

    相关文章

      网友评论

          本文标题:Charles抓取App应用包

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