【转载】猿人学 - app 逆向比赛第五题双向认证题解

文章转载之 猿人学 2020 app 逆向比赛中的第一名大佬 darbra:公众号:资源堂

原文链接:https://mp.weixin.qq.com/s/7wU8almDyjwXeEvVbEWgvw


前言

这次和紫星大佬组队,获得了猿人学-Android端爬虫比赛的第一名。

在此先说一句:紫星大佬牛逼!

比赛链接:https://appmatch.yuanrenxue.com/

获取key

第五题是双向认证,拿出珍藏的脚本tracer-keystore.js试试。

function hookKeystoreGetInstance() {
    var keyStoreGetInstance = Java.use('java.security.KeyStore')['getInstance'].overload("java.lang.String");
    keyStoreGetInstance.implementation = function (type) {
        //console.log("[Call] Keystore.getInstance(java.lang.String )")
        console.log("[Keystore.getInstance()]: type: " + type);
        var tmp = this.getInstance(type);
        keystoreList.push(tmp); // Collect keystore objects to allow dump them later using ListAliasesRuntime()
        return tmp;
    }
}

下载地址:https://github.com/FSecureLABS/android-keystore-audit/blob/master/frida-scripts/tracer-keystore.js

打开app,点击第五题,就出来bks证书的密码了。

bks到p12的转换

接着打开神器keystore-explorer,进行bks到p12的转换。

下载链接:https://keystore-explorer.org/downloads.html

打开clientCA.bks

输入前面hook到的密码

转成p12

导出证书

抓包

效仿以前抓soul包的方式,将较早之前生成的p12证书导入charles。

发现提示密码错误。

【PS:就在我还在对密码错误怀疑人生的时候,紫星巨佬说到:为啥一定要抓包?然后他就搞出结果了。。】

那换种思路,用神器r0capture试试。

下载链接:https://github.com/r0ysue/r0capture

运行神器后,请求流程自吐了出来。

POST请求

url是180.76.60.244:18443/api/app5

Content-Type是application/x-www-form-urlencoded

User-Agent是okhttp/3.14.9

data是page=1

脚本书写

带上之前转化成功的p12证书,构造刚刚得到的请求,结果就呼之欲出了。

import requests_pkcs12

def get_page(page):
    url = 'https://*.*.*.*:*/api/app5'
    hd = {
        'Content-Type':'application/x-www-form-urlencoded',
        'user-agent': 'okhttp/3.14.9'
    }
    data = {
        'page': page
    }
    resp = requests_pkcs12.post(url, 
                headers=hd, data=data, pkcs12_filename='1.p12', 
                pkcs12_password='**********', verify=False)
    print(resp.json())

get_page(1)

答案呼之欲出了。

队友紫星大佬的52pojie:https://www.52pojie.cn/home.php?mod=space&uid=358970

紫星大佬的github:https://github.com/zixing131

本人收藏了很多优秀文章:https://github.com/darbra/sperm

本人还有些可复现的案例:https://github.com/darbra/sign

暂无评论
本文作者:
本文链接: https://www.qinless.com/?p=1871
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 qinless 的博客!
100

发表评论

返回顶部