JS逆向
📙JS逆向-一个案例告诉你遇到wasm加密如何解决?
00 分钟
2024-12-22
2024-12-23
type
status
date
slug
summary
tags
category
icon
password
😀
WebAssembly(WASM)是一种轻量级、跨平台的字节码格式,专为高效执行设计,广泛应用于现代浏览器和其他运行环境。它通过接近原生的性能支持多种编程语言,并以模块化方式运行。WASM常用于提升网站性能、运行复杂计算任务以及支持跨平台应用开发,提高网站的安全性的一把利器。
 

📝 主旨内容

网址信息

目标网站:aHR0cHM6Ly93d3cud2FpbWFveGlhLm5ldC9sb2dpbg== 分析登录的sign加密参数

定位分析

我们先填写信息,点击登录,然后可以看到抓到一个数据包如下
notion image
这里的sign就是我们今天的目标,我们主要是找到sign如何实现的,并且如何在我们本地进行运算得到正确的结果。
首先我们还是老样子找堆栈。
notion image
我们其实可以看到,这里的堆栈不是有很多,根据我们经验和这些方法名分析,我们觉得最有可能得就是post和getUserLoginAction这两个方法实现的,我们先点击post打个断点尝试一下。
notion image
这里我们其实是可以看到,sign已经计算出来了,所有我们向上查找,看看是否有可疑的地方。
我们找了几个发现这个地方比较可疑,方法都是用sign命名的。
notion image
我们跟上去看到代码是如下这个样子的。
notion image
notion image
我们在点击的时候就看到他文件是wasm_xxx这个样子,所以这里我们就知道他是wasm文件去调用的js文件,并且我们在js文件也看到很多异步操作,所以这里我们更加确定是wasm运行。
我们再看一下我们网络请求哪里有没有wasm文件返回。
notion image
我们看到其实是有wasm的网络请求。到这里我们就已经基本了解了情况,我们接下来就是需要用nodejs来实现这整一个流程。
wasm逆向流程
首先我们先要了解要完整实现wasm的调用运行,我们需要什么东西。
这里如果你有学习过正向开发wasm的知识那你就会知道,如果没有,哪也没有关系,我这里简单的说一下。
notion image
一般情况下,所有wasm文件调用都会使用到这些参数才能得到正确的结果,并且他可能会是异常区执行的。那么接下来,我们就继续回归主题继续操作。
本地运行
notion image
把这些代码全部复制到本地,
notion image
我们重点要关注这个地方,这里其实读取wasm文件并且还要把所需要的env环境一起加载到内存中,然后通过run进行初始化。所以我们需要找到所有的env环境,他已经帮我们定义好了。
notion image
就是这里的importobject这个对象,这里就是他所需要的env环境。
这里我对他这个文件进行改造,使其可以正常的读取和初始化。
notion image
接下来我们点击对应的sign函数。
notion image
我们可以看到这里就是最终获取结果的地方。
notion image
如上参数其实就是计算所需要的参数。
notion image
通过先调用函数,得到函数内的函数,然后再继续调用得到正确的结果。

运行结果

通过,把环境补充网站然后在执行我们的代码,得到sign加密结果。
notion image
我们在根据网站进行对比一番验证结果是否正确。
notion image
我们可以看到结果是没有问题,也可以正确的得到我们的完整结果,说明我们整个流程运算的结果是没有错误的。

🤗 总结归纳

这篇文章主要是讲解如何解决有这种wasm文件的逆向,怎么从0到1的解决问题。
 
上一篇
如何处理无限debugger模式
下一篇
JS逆向-某词霸sign逆向

评论
Loading...