猿人学2022安卓逆向对抗比赛第五题分析
双向认证,那么就需要有证书了,打开APP后看看 在assets 文件夹中 是否有证书确实可以看到有一个客户端的证书,是.bks 的那么r0ysue大佬的 r0capture 依旧可以排上用场,直接可以dump 下来.p12的证书 到手机的 SDcard/Download 目录下,密码为r0ysue然后发现竟然卡住了。。。。。证书也没有dump下来。。。。那就换一种思路呗。。。。。密钥获取成功 =
猿人学2022安卓逆向第5题 :双向认证
双向认证,那么就需要有证书了,打开APP后看看 在assets 文件夹中 是否有证书
确实可以看到有一个客户端的证书,是.bks 的
那么r0ysue大佬的 r0capture 依旧可以排上用场,直接可以dump 下来.p12的证书 到手机的 SDcard/Download 目录下,密码为r0ysue
使用r0capture dump 证书
使用Spawm模式运行
记得给app 手动开启 存储权限
然后发现竟然卡住了。。。。。证书也没有dump下来。。。。
那就换一种思路呗。。。。。
使用 tracer-keystore 获取证书密钥
密钥获取成功 = > : MZ4cozY8Qu32UzGe
使用 keyStrore 进行证书转换
然后通过Charles 进行 导入证书
然后我又开始怀疑人生了。。。。证书导入 总是显示密码错误。。。。
重新使用 r0capture
等等。。。。诶 ,我刚才使用的 frida 14.2.17 的会不会是版本太高导致的bug
使用frida 12.8.0 嘞?
试一下
重新 使用 frida-server 12.8.0
然后重新运行 r0capture
嘿嘿 打印出来了!!!! 果然 frida 极其的不稳定,最好 还是 多安装几个版本
获取 第5题的 post请求
可以看到
post 请求
host => 180.76.60.244:18443
path => /api/app5
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.14.9
data = > page=1
竟然没有带任何的加密参数。。。。。
那么就简单了,直接 使用python 写一下 请求就行
python 请求
代码如下
from requests.packages import urllib3
import requests_pkcs12
urllib3.disable_warnings()
def get_data():
num = 0
for i in range(1,101):
url = 'https://180.76.60.244:18443/api/app5'
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Connection": "Keep-Alive",
"Accept-Encoding": "gzip",
"User-Agent": "okhttp/3.14.9"
}
data = {
'page' : i
}
rsp = requests_pkcs12.post(url,headers=headers,data=data,pkcs12_filename='1.p12',pkcs12_password='MZ4cozY8Qu32UzGe',verify=False)
data = rsp.json()
print(data)
for value in data['data']:
num += int(value['value'])
print('num=>',num)
if __name__ == '__main__':
get_data()
效果如下 计算结果:8119432
总结
带证书的请求 使用 pip install requests-pkcs12
frida 最好在手机里面下至少两个版本,frida 极其的不稳定,高版本有可能会出现很多鸡肋的bug
双向认证的过程当中,就是找证书和密钥,然后另外的不用管
逆向的过程 总不会是一帆风顺的,其中有很多的坑,但是这个却是积累经验的
更多推荐
所有评论(0)