Charles抓取App应用包

时间:2021-6-4 作者:qvyue

前言

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

配置Charles

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

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

Charles抓取App应用包
image.png

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

Charles抓取App应用包
image.png

电脑上证书安装

Charles抓取App应用包
image.png

Charles抓取App应用包
image.png

Charles抓取App应用包
image.png
Charles抓取App应用包
image.png
Charles抓取App应用包
image.png

Charles抓取App应用包
image.png

Charles抓取App应用包
image.png

手机上配置

先wifi设置代理

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

Charles抓取App应用包
image.png

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

Charles抓取App应用包
image.png

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

Charles抓取App应用包
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版本

Charles抓取App应用包
image.png

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

参考

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

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。