Charles抓包配置(绕过SSL Pinning)

realhuhu 638 0

前言

  1. 目前很多App采用了SSL Pinning技术,App只信任系统证书,不信任你安装的证书,因此通过简单的手机安装证书+电脑代理的方式无法抓取数据
  2. 主要有两种解决办法
    • 反编译安装包,修改关于SSL Pinning的代码,重新打包
    • 将抓包软件的证书伪装成系统证书,安装到手机根目录(需要手机已root)
  3. 本文采用第二种办法,用Charles抓包,用夜神模拟器作为root手机,用OpenSSL将证书伪造成系统证书

配置Charles

  1. 点击Help>SSL Proxying>Install Charles Root Certificate

Charles抓包配置(绕过SSL Pinning)

  1. 点击安装证书,注意一定要选择受信任的根证书颁发机构

Charles抓包配置(绕过SSL Pinning)
Charles抓包配置(绕过SSL Pinning)

  1. 开启SSL Proxying,点击>Proxy>SSL Proxying Settings..,添加Include,这样就能代理所有Https请求

Charles抓包配置(绕过SSL Pinning)
Charles抓包配置(绕过SSL Pinning)

  1. 此时应该可以正常抓取本机的http和https的包

Charles抓包配置(绕过SSL Pinning)

编译证书

  1. 首先安装好OpenSSL
  2. 点击Help>SSL Proxying>Save Charles Root Certificate,导出pem证书

Charles抓包配置(绕过SSL Pinning)

  1. 输入命令openssl x509 -subject_hash_old -in {pem证书}

Charles抓包配置(绕过SSL Pinning)

第一行输出为3b78ca34,将导出的pem证书名称修改为3b78ca34.0

配置夜神模拟器

  1. 打开夜神模拟器自带的Amaze,拖入改名后的证书,剪切

Charles抓包配置(绕过SSL Pinning)

  1. 将证书粘贴到/system/etc/security/cacerts/目录下

Charles抓包配置(绕过SSL Pinning)

  1. 点击三个点>属性>权限,修改为如下图

Charles抓包配置(绕过SSL Pinning)
Charles抓包配置(绕过SSL Pinning)

  1. 打开WLAN设置,长按WiredSSID,选择高级选项

Charles抓包配置(绕过SSL Pinning)

  1. 展开高级选项,将代理设置为手动,代理服务器主机名为电脑的内网IP,代理服务器端口为Charles的代理端口(Proxy>Proxy Settings...),保存

Charles抓包配置(绕过SSL Pinning)
Charles抓包配置(绕过SSL Pinning)
Charles抓包配置(绕过SSL Pinning)

完成

此时打开网页,Charles会弹出提示框,点击同意,即可对App抓包

发表评论 取消回复
表情 图片 链接 代码

分享