第一次接触支付宝小程序的抓包,记录一下这俩天的收获,最终不是很优雅的的实现了抓包和源码获取
小程序的渗透测试思路基本与web一样,难点在抓包和源码获取俩部分
1. 模拟器检测
刚开始是在雷电模拟器上安装支付宝,登录一直提示错误信息,直接用真机一加3T,配置为Android9+ROOT,之前刷的OxygenOS
抓包配置
- 安装CA证书
以抓包软件Reqable为例,安装软件后,点击工具栏证书,选择安卓
添加图片注释,不超过 140 字(可选)
然后复制ADB命令就可以了
如果使用其他代理软件,如Burp,fiddler,whistle等,基本都是一个crt或者pem文件,使用openssl计算一下hash值,然后修改文件名为.0,同样的adb命令push到手机里也是一样的
以whistle的证书为例
添加图片注释,不超过 140 字(可选)
修改文件名为 22d90468.0 就可以了
- 配置代理
刚开始我使用的是WIFI里的代理选项,发现有些软件根本不走,最后找到了一个把代理转为VPN的工具,ProxyMe,能强制软件走代理
添加图片注释,不超过 140 字(可选)
目前已经能抓到支付宝小程序的包了,但是抓不到支付宝的包,处在一个很抽象的位置,
所以我的方法是,先不配置代理,让小程序加载完成,然后再开启代理,我也尝试过诸多解决方法,包括但不限于 TruseMeAlready(如下图) , GitHub - holymonk/AlipayTinyAppCrack: 破解支付宝小程序ssl验证,实现代理抓包 , 但都失败了
添加图片注释,不超过 140 字(可选)
源码获取
这个源码的地位基本相当于前端打包好的JS,不可谓不重要
但是搜索后发现方法不多,只找到吾爱上19年的一篇帖子
支付宝小程序抓包与源码获取 - 『移动安全区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
/data/data/com.eg.android.AlipayGphone/files/nebulaInstallApps/
但是经过我实际测验,也就是找一个没使用过的小程序加载,发现这个并没有多出来文件夹,通过grep也搜索不到关键字,猜测可能是已经修改了存储位置
最后通过grep搜索关键字,定位到了源码位置,具体方法如下
- 先打开你要获取源码的小程序,让支付宝把源码缓存到手机上
#读取小程序数据库
/data/data/com.eg.android.AlipayGphone/databases/nebulax_app.db
#使用adb pull拉到电脑上
adb pull /data/data/com.eg.android.AlipayGphone/databases/nebulax_app.db
2. 使用在线网站打开这个数据库,这里我用的是SQLite Viewer
在 nebulax_resource_app_table 这张表里,有所有的缓存的小程序信息
以海底捞为例
添加图片注释,不超过 140 字(可选)
2021002129620228就是它的app_id
- grep搜索这个app_id
grep -rl "2021002129620228" ./
添加图片注释,不超过 140 字(可选)
以 0.data结尾的就是源码
添加图片注释,不超过 140 字(可选)
解压后再次解压2021002129620228.tar
添加图片注释,不超过 140 字(可选)
结语
感觉还是有许多不足,如果有其他方法欢迎大佬们多多指点,谢谢!
清单
| 名称 | 作用 | URL |
|---|---|---|
| 一加3T(ROOT)真机 | 绕过模拟器检测 | None |
| Reqable | 抓包 | reqable.com/ |
| ProxyMe | 强制软件走代理 | github.com/jayluxferro… |