美文网首页
Charles 抓包 Https

Charles 抓包 Https

作者: Jiun俊 | 来源:发表于2020-08-13 15:57 被阅读0次

    拷贝自原文链接,超级实用,十分感谢,防止失效。

    场景:

    用于抓取 7.0 以上任意应用的网络请求。

    简单原理:

    利用 Https 对证书的溯源校验。系统内会预置一些根证书,默认这些证书都是可信安全的。Root 后,按照既定的规则,将电脑 Charles 证书放到此目录下,这样,电脑中间代理后,读取到的中间代理证书也被认为是 CA 颁发的安全证书,并信任。

    具体步骤:

    0. 必须先 Root 手机

    1. 下载证书

    根据Charles的help浏览chls.pro/ssl下载证书,你可以在设备上下载后adb pull到电脑上,也可以直接用电脑浏览器下载。

    2. 证书重命名

    系统证书在目录/system/etc/security/cacerts/下,我们看到


    系统内置证书

    每个证书的命名规则是<Certificate_Hash>.<Number>,文件名是一个Hash值,而后缀是一个数字。后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1.
    我们用下面的命令计算出证书文件的Hash值 openssl x509 -subject_hash_old -in <Certificate_File>


    示例图

    也有在线工具,可以直接上传获取即可

    3. 上传证书

    我们将重命名好的证书adb push/sdcard/Download,然后将其复制到/system/etc/security/cacerts/文件夹。

    image.png

    如果出现上面问题,那么我们就需要使用mount -o rw,remount /system命令将system分区挂在为可读写。
    也可以直接 cd 到 cacerts 目录使用 mount -o rw,remount / 只挂在 cacerts 目录(我挂载 system 就失败了)

    还是失败请依次执行下面命令:

    adb root
    adb disable-verity
    adb reboot
    adb remount
    adb shell
    mount -o rw,remount /system
    

    复制好后将文件权限更改为644,并重启设备

    image.png

    4. 验证结果

    设置》安全》信任的凭证,我们可以看到


    image.png

    5. 最后抓包

    正常设置代理即可,不会的话,可以参考Charles - Windows,Mac 和 Windows 方法大同小异。设置后,就可以拦截到所有接口了,并且都被解析为明文。

    相关文章

      网友评论

          本文标题:Charles 抓包 Https

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