1、抓包
多次抓包后发现,请求体的productCode是不变的,data和sign每次都在变化,第一眼会察觉data是base64/aes,sign是md5
微信截图_20240418163214.png (69.38 KB, 下载次数: 0)
下载附件
2024-4-18 16:34 上传
2、分析
data和sign关键字太大众了,productCode倒是一个很好的切入点,apk拖入jadx,分析完后直接搜索productCode,一下就看到要找的地方了
微信截图_20240418163653.png (481.29 KB, 下载次数: 0)
下载附件
2024-4-18 16:37 上传
可以看到productCode是一个常量,符合之前不变化的特征,点进去看看data和sign是怎么来的吧
先看data,函数很简单,就是一个json字符串然后aes加密一下
微信截图_20240418164215.png (142.45 KB, 下载次数: 0)
下载附件
2024-4-18 16:42 上传
点开key看看是啥
微信截图_20240418164343.png (32.31 KB, 下载次数: 0)
下载附件
2024-4-18 16:43 上传
有了key就直接逆向之友CyberChef跑跑看,请求体一下就出来了
微信截图_20240418164533.png (264 KB, 下载次数: 0)
下载附件
2024-4-18 16:45 上传
再看看sign怎么来的
微信截图_20240418164729.png (92.38 KB, 下载次数: 0)
下载附件
2024-4-18 16:47 上传
简单点说就是把json的key排了个序,然后按照key=value和&拼字符串,最后还跟了个signKey,再取md5,我们用算法还原下
微信截图_20240418165502.png (205.28 KB, 下载次数: 0)
下载附件
2024-4-18 16:55 上传
搞定收工