APP测试系列- APP测试过程抓包小问题记录
一、前言
继续接力 APP 的测试,记录测试过程中遇到抓包的小问题,篇幅如下。
二、具体问题
测试应用 Android APP,当正常使用系统设置 wifi 代理时,进入 APP 界面提示报错 “请求失败,java.security.cert.CertPathValidatorException:Trust anchor for certification path not found”,无法正常进行抓包。根据报错提示,大概知道是证书类的问题,尝试使用 Objection 绕过 SSLPinning 无法抓取数据包,APP 提示 network error。
继续尝试 frida 脚本绕过,但报错 syntax error,expect start with { or [,but actually start with error,提示语法错误,此前一直使用该脚本进行测试没有出现过此类的报错。
三、解决方案
后面使用小黄鸟发现可抓包,但个人使用起来不太顺手,最终通过筛选选择使用 Xposed 框架中的 JustTrustMePP 进行绕过,项目地址:https://github.com/JunGe-Y/JustTrustMePP/blob/master/app/release/app-release.apk
1)手机需要 root,然后安装 Magisk v21+,这一步就不多说了,自行准备设备,本人 Magisk 版本为 26.1,然后安装 Zygisk-LSPosed 实现 Xposed,下载地址:https://github.com/LSPosed/LSPosed ,下载后直接在模块处选择安装后重启设备即可。
2)安装完毕后,在通知栏中会出现 LSPosed 管理器,用于管理 Xposed 中的插件。
3)安装 JustTrustMePP.apk ,下载地址:https://github.com/JunGe-Y/JustTrustMePP/blob/master/app/release/app-release.apk 下载完安装即可,然后在手机通知栏处进入 LSPosed 管理器管理该插件,进入 JustTrustMe++ 选择需要使用该插件的 APP 即可绕过证书验证,抓取 https。
该 JustTrustMePP 主要解决的是用了Okhttp 且被混淆的 app,通过 hook okhttp 在验证证书之前必须用到的类,然后通过这个类的调用堆栈,去识别 okhttp 的相关类,从而实现跳过证书验证。
四、后记
测试完毕后进行复盘时,发现其中一设备重新使用 Objection 后惊奇发现可以进行绕过抓包,当时测试期间使用了两台设备 Objection 均无法绕过,只能说命运弄人,测试完毕才正常可抓。