darbra 发表于 2022-5-17 17:09

猿人学比赛第五题-双向认证分享

## 前言

这次和紫星大佬组队,获得了猿人学-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(" Keystore.getInstance(java.lang.String )")
      console.log(": 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是*.*.*.*:*/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

menghen 发表于 2022-5-17 22:30

darbra 发表于 2022-5-17 21:29
不知道啊 charles 小黄鸟都不行 但用脚本行

这个问题很奇怪 貌似是charles的问题 估计是跟openssl 生成的版本有关系

darbra 发表于 2022-5-17 23:21

menghen 发表于 2022-5-17 22:30
这个问题很奇怪 貌似是charles的问题 估计是跟openssl 生成的版本有关系

小黄鸟 也不行啊大佬

正己 发表于 2022-5-17 17:31

本帖最后由 正己 于 2022-5-17 17:36 编辑

darbra老师带带吧!
https://s2.loli.net/2022/01/28/Nj69AGSKrYltpcU.jpg

我是不会改名的 发表于 2022-5-17 17:33

http://pic.rmb.bdstatic.com/bjh/77017fda06b78950e1fb8265a90a50cb.png
http://pic.rmb.bdstatic.com/bjh/703625a5bdb22c0fb07c81e1396eb218.png

darbra 发表于 2022-5-17 17:35

正己 发表于 2022-5-17 17:31
darbra老师带带吧!

正己大佬带带我

Drawlone 发表于 2022-5-17 20:55

所以密码为啥错误

darbra 发表于 2022-5-17 21:29

Drawlone 发表于 2022-5-17 20:55
所以密码为啥错误

不知道啊 charles 小黄鸟都不行 但用脚本行

menghen 发表于 2022-5-17 23:24

darbra 发表于 2022-5-17 23:21
小黄鸟 也不行啊大佬

试试Burp呢

啊杰啊 发表于 2022-5-18 07:51

大佬666啊 带带DD呀
页: [1] 2 3
查看完整版本: 猿人学比赛第五题-双向认证分享