hybpjx 发表于 2024-6-14 10:41

某家请求头X-TJH参数逆向流程分析

本帖最后由 hybpjx 于 2024-6-14 10:44 编辑

# 目标网站

> aHR0cHM6Ly9tLnR1amlhLmNvbS8=

# 网站分析

看下需要逆向的参数是哪些。

ok headers里的一些参数

![](https://s2.loli.net/2024/06/13/rIs6mVx82fv3nTo.png)

话不多B,直接进这个栈

![](https://s2.loli.net/2024/06/13/uYDLfEMxUkocvd5.png)

追栈 断点走到如下位置

![](https://s2.loli.net/2024/06/13/epw3gMCRFAYOyqI.png)



# 扣代码分析

## TT_info

我们通过ast给他转换一下。 可以看到 还嵌套了一层。

![](https://s2.loli.net/2024/06/13/6BlTd92QUVnvLeS.png)

继续解混淆

把一些方法混淆还原后是这个样子

![](https://s2.loli.net/2024/06/13/NckS5UjdCEp7By3.png)

然后我们来看下以下几个方法分别是

**b.g()**

这里就是通过时间戳做的计算

![](https://s2.loli.net/2024/06/13/qkMy76cQDgAKbYI.png)

**b.h**

进栈走控制流。

![](https://s2.loli.net/2024/06/13/e6OaG5jlCSvyZKb.png)

往上找堆栈 就能发现了传参的地方。

![](https://s2.loli.net/2024/06/13/4c6dWMONSoXesxD.png)

然后找一下控制流的顺序

```
['1', '2', '7', '5', '4', '3', '0', '6']
```



然后还原出来。

![](https://s2.loli.net/2024/06/13/slfCnV1KqThRU8W.png)

自此**b.h** 得到了

然后运行一下

最终得到一个乱码

![](https://s2.loli.net/2024/06/13/65qWJD4xtATEz1Y.png)

![](https://s2.loli.net/2024/06/13/j421VugNbBJYtsp.png)

**b.k**

报错 未定义。往下追

![](https://s2.loli.net/2024/06/13/vdOP9mCyUkTzE5G.png)

A() 函数最终返回的是一个登录返回的cookie中的userID

![](https://s2.loli.net/2024/06/13/S8x97kUBli5mAJR.png)

然后继续扣b.k

找到堆栈。

![](https://s2.loli.net/2024/06/13/CzgD6FxNYSO9KTm.png)

然后发现是个base64

![](https://s2.loli.net/2024/06/13/MgwtLRhcsQH8An7.png)

LL_info 参数解密完成



## T-INFO

这个参数就同理了。

一点一点的对应。

这里可以看到 这个L参数也就是T-INFO 是sha1加密

![](https://s2.loli.net/2024/06/14/eGIL23qBQUaS1Ez.png)

调用一下 看看有没有魔改



![](https://s2.loli.net/2024/06/14/iJlTv6CwVXp9AsG.png)

![](https://s2.loli.net/2024/06/14/87jRhWrFyHxlO3e.png)

验证出来就是普通的sha1,那把这个混淆拼接 ,把值都搞出来加密即可。

最后整出来是这个样子

![](https://s2.loli.net/2024/06/13/jnD2orUvKXAq8dW.png)

## X_TJH

这是个sha1加密算法

这里不多说了。按照上面的流程一一对应。

最后整理出来是这样的。

![](https://s2.loli.net/2024/06/14/rcnlasV5HuGqAJ2.png)

这里注意一个点。这个U(ee) 原文中为U(e)

这里是switch指令集顺序为 ['1', '2', '5', '6', '3', '4', '0']

t(x, s);还原出来是 >>>> x(s)



![](https://s2.loli.net/2024/06/14/2njcZwekAJtVvGq.png)

而s就是请求传过来的data,而n就是整体传参 如下图。

![](https://s2.loli.net/2024/06/14/W8YshjASkEJPX6K.png)

简单修改一下即可。

这里还需要拼接一下。其它的关系。几个函数互相调用一下值。

如下图修改完毕即可。

![](https://s2.loli.net/2024/06/14/YkT13cCMJlmu9je.png)

# 结果

这里感觉ast学的还是不咋地 有点地方还是不知道咱们去解,还是手撸,这样就太蠢了。

![](https://s2.loli.net/2024/06/14/eqAyv2rH3mg8jPD.png)

悦来客栈的老板 发表于 2024-6-14 11:48

ob混淆都是有规律还原的。不用重复编写代码来还原。

hybpjx 发表于 2024-6-14 11:57

悦来客栈的老板 发表于 2024-6-14 11:48
ob混淆都是有规律还原的。不用重复编写代码来还原。

蔡老板 带带我。ast学的七零八落的{:1_889:}

Mr222222222 发表于 2024-6-14 13:12

这玩意当初还原完替换报错,菜老板过年又没空,手搓通宵{:1_907:}

feiyu361 发表于 2024-6-16 10:55

还原的不错,学习了

mysmwt 发表于 2024-6-16 20:50

楼主大大,混淆还原在哪里学啊

hybpjx 发表于 2024-6-17 11:07

mysmwt 发表于 2024-6-16 20:50
楼主大大,混淆还原在哪里学啊

自学,自己去根据ast去搞

angelbaal 发表于 2024-7-11 11:35

楼主大大,混淆还原在哪里学啊

李玉风我爱你 发表于 2024-11-5 21:05

请教下 如何看出来 X_TJH 是 Sha1算法?

billpeace 发表于 2024-11-6 08:08

我们通过ast给他转换一下

这个是怎么做的?谢谢了
页: [1]
查看完整版本: 某家请求头X-TJH参数逆向流程分析