APP逆向-猿人学APP大赛-第五题-双向认证
先理解一下什么是 双向认证
https://cloud.tencent.com/developer/article/1699532
所以用fiddler抓包是肯定不行的,用r0capture试试吧
请求,图中已经圈出了 Host、Path 和 FormData
返回
下一步就是要dump出客户端中的证书,也是用r0capture
根据提示,先打开存储权限
然后启动Spawm模式,运行命令:
1 | python r0capture.py -U -f com.yuanrenxue.match2022 -v |
报错: process not found
怀疑是 Frida 15.1.28 的不支持 Spawm模式,换个稳定版本:12.8.0
折腾了好一会儿,才在虚拟环境装好了,这里记录一下
由于无法用pip直接安装,所以需要去pypi下载对应的安装包
然后cd到对应目录下,执行命令:python setup.py install
还需要安装旧版本的 firda-tools,pip install frida-tools==5.0.0
这样就装好了,把对应版本的frida-server-12.8.0推送到模拟器,然后启动,接口转发,再次运行 spawm命令
这次没有报错了,到 /sdcard/Download
下看看,成功拿到证书,每一份都可用
运行命令导出证书
1 | adb pull /sdcard/Download/com.yuanrenxue.match2022258BA6B5A4.p12 yuanrenxue.match2022.p12 |
然后就是使用 OpenSSL
来提取 key 和 cert,需要先安装:pip install pyopenssl
提取脚本如下:
1 | from OpenSSL import crypto |
那么要如何使用 .key
和 .cert
这两个文件呢?查询requests文档,可以找到答案:
再根据之前抓包获取的主机和路径,可以构造请求:
1 | import requests |
通关!✨✨✨
参考资料:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chen's Blog!
评论