【WEB安全-新版tk参数x-b生成】此文章归类为:WEB安全。
参数介绍
目标网站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进制转换得到。

最后于 1小时前
被JINCHENG0408编辑
,原因: 补充图片
更多【WEB安全-新版tk参数x-b生成】相关视频教程:www.yxfzedu.com