首页
社区
课程
招聘
[原创]新版tk参数x-b生成
发表于: 6天前 743

[原创]新版tk参数x-b生成

6天前
743

参数介绍

目标网站url:aHR0cHM6Ly93d3cudGlrdG9rLmNvbS9hcGkvc2VhcmNoL2l0ZW0vZnVsbC8=

测试x_bogus目前版本不校验,本篇文章仅做学习探讨

流程分析

开始全局搜索,很容易在webmssdk.js位置找到。在生成位置打上断点,a就是我们要的x-bogus生成结果

跳过断点之后,发现c为其他接口请求url时,也会经过此段逻辑,所以最好打上条件断点,仅当c为搜索url时断住。

一步一步往下跟值,进入了S函数

经过尝试,发现一直在循环执行d[c](u)方法,c是指令,u为寄存器,很明显的jsvmp。

下面开始考虑插桩。插桩位置最初的想法就是插在d[c](u)处,经过观察主要变量都放在u.u中,另外指令c是每次执行的函数索引,所以在此处记录c和u.u的值。

X_Bogus生成过程的日志大概三千多个行,在最后我们发现了x-b的生成生成流程

x-b生成

于是我们继续往上找,将x-b第1个位置到最后一个位置的生成日志都截下来,大概两百多行,也就是执行了两百多次命令。由于我们把指令索引也打印了下来,所以能够发现明显规则:c在重复出现。根据规律,可以将这两百多次命令分为7个部分,每部分对应4个字符的生成。

开始跟值,发现x-b是由字符串'Dkdpgh4ZKsQB80/Mfvw36XI1R25-WUAlEi7NLboqYTOPuzmFjJnryx9HVGcaStCe=' 和一个乱码'\x02ÿ-%n*\x18X^\x8FéæúͲ\bB\x9A,í\x96', 经过变体hash加密生成的。经过观察,发现以上字符串是固定的,但是乱码是变动的。符合常理,乱码的生成一定和url的参数有关。

乱码生成

开始在日志里面全局搜索乱码,发现是有'ÿ','\x02','-%n*\x18X^\x8FéæúͲ\bB\x9A,í\x96'这三个乱码生成,经过对比,前两个是固定的,后面一个是变化的(下面简称乱码2).

乱码2生成

在乱码2最后出现的地方,往上找,发现有一段和乱码2长度一样的乱码出现(下面简称乱码3),打上断点,进行跟值,发现有进入了S函数


进入到加密逻辑,发现是个rc4加密。进过此段逻辑,乱码2生成。下面的步骤就是找到乱码3是怎么生成的。

乱码3生成

再向上观察,发现有一个19位的Array对象在生成,将生成结果通过fromChatAt方法转换,刚好生成乱码3

对此生成过程进行跟值,发现是通过奇偶交替,从第9位到第27位取得。

继续往上跟值,将涉及到的第n位的值全部记录下来,去除不变的值,发现最后关联到三个数组,分别成为数组1,数组2,数组3

经过对比,发现数组2 和数组3的值没有变动,但是数组1的值每次都变。

再次找到数组1最后出现的地方,然后往上跟,发现是url经过两次md5+16进制转换得到。

至此,将以上流程串起来,得到28位的x-b参数。


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 5天前 被JINCHENG0408编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回