小程序和APP抓包的问题

小程序和APP抓包的问题

很多同学都会遇到小程序和APP抓不到包的问题,抓不到https请求包,这边给大家提供一些解决方案。

Yakit工具

首先需要的就是一个抓包神器yakit,这个工具非常好用强大,具体安装和使用大家可以参考上一篇文章。

PC端小程序抓包

PC端可以采用双层代理的方式,Proxifier+Yakit

Proxifier的配置

首先配置一下代理

端口和Yakit的端口保持一致

代理规则如下

Yakit配置

记得端口保持一致

这样就能抓到https的数据包了

手机端小程序和APP抓包

由于安卓7.0以上版本不再信任用户证书,所以我们需要给手机安装系统证书(必须root!未root的安装手机抓包可以使用httpcanary)

导出Yakit的证书

因为yakit的证书导出后就是pem格式,所以直接用openssl来查看其hash值(openssl kali会自带)

复制代码
openssl x509 -inform PEM -subject_hash_old -in cacert.pem

将文件名改为hash值最上方的数字,名字命名为hash值.0,到这里证书就算制作成功

导入证书

这里以逍遥模拟器为例

找到逍遥模拟器的Memu目录,把命名好的证书放到该目录下,并在该目录打开cmd

这里要用到adb,不了解的同学可以先去简单了解一下adb

进入cmd之后,输入命令

复制代码
adb connect 127.0.0.1:21503

21503端口是逍遥模拟器的端口,各模拟器可能有所不同

判断是否开启root权限

复制代码
adb root

显示已经开启root

开启写入模式

复制代码
adb remount

将证书文件送至模拟器的证书目录下

复制代码
adb push hash.0 /system/etc/security/cacerts/

显示安装成功

最后去模拟器查看证书

这样证书就安装好了

后续将手机的网络代理到yakit的监听端口就行了

以及注意抓取app时yakit需要劫持PC端IP的端口,不能劫持本地端口

burpsuite导入证书

bp导入证书步骤和yakit步骤一样,只是因为bp证书不是pem格式,所以要多一步将证书转为pem格式

复制代码
openssl x509 -inform DER -in cacert.cer -out cacert.pem

这个就是bp的证书成功导入

补充

有时候抓包可直接抓取请求包,但是没有返回包,这可能是服务端对客户端证书做了校验,burp的证书不合法所以无法接受返回包

这种双向校验的情况下次再和大家介绍一下。