1.抓包
大致可以看出可能需要逆向的参数有:
tenant | ebe39d4fa3f4bafae53144efe59adaed |
authtoken | 20a9c828ab376e6cff0a49f962fcb5fca58487dbf5af6fed5602b3f8d8833d46 |
nonce | c4d75eb1-5b31-4bf9-abd2-30b97240d873 |
sign | JuGbeAPxatXTwZ9Uf0jNnMXeoPgaT8Cu6oGMhjW |
经过多次同个请求的抓包,发现只需要逆向authtoken、nonce、sign
2.加密分析
2.1 sign
首先使用加密嗅探工具,可得到此为AES-CBC加密,多次抓请求测试key和iv是固定的(后续此处有坑),text为请求参数的拼接
2.2 nonce
加密嗅探并未找到该参数值,这个时候需要app逆向了
使用反编译工具 发现此为加固apk
这个时候我们使用frida破壳得到dex,重新反编译,看起来正常多了
搜索参数名称,经过判断应该是这个。
点进去,一次性就破解了,是个uuid的生成
2.3小事故
至此 代码写好我以为ok的时候,第二天就不能用了,重新抓包发现authtoken在每次重新打开应用的时候都会变化,且key也并非固定值
在反编译的apk中搜不到
可以考虑是否为其他请求返回,于是我清空了用户数据,重新进入应用,找到了这个请求得到token
对于key 通过工具嗅探,他与 data'的一个参数有关系,当我尝试固定发现ok
python复现整个加密以及编写爬虫,最后整个破解流程完毕