猿人学js逆向比赛第一届第二十题

分析请求

image-20250712084727685

通过堆栈可以快速定位到这里,,那么sign,就是调用的sign函数生成的了。

image-20250712084845620

通过在控制他输出sign快速定位到这个函数,在这里下个断点调试看一下。

image-20250712085033915

跟到这里了,并没有看到有什么疑似密文的产生,那么大概率就是在这个函数中做的了,那么在跟到这个函数里面看一下。很明显看到了wasm的特点,那么接下来就是分析这个wsam是在哪里加载的。

image-20250712085202840

二、分析wasm

image-20250712085728494

通过关键字定位,我定位到了这里进行的赋值操作,同时看到了webpack3的特征值,那么这里就可以推测这实际上是一个webpack3打包的加载wasm的代码。

image-20250712085928864

这里通过定位加载器,也是顺利找到了wasm加载的位置。那么这里只需导出这个importObject到本地就行了。

image-20250712090112681

这里通过这个importObject也是定位到了这里,但是可以看到这里的对象里面每个key所对应的value实际上并不是真正的函数体,那么这里全局搜索关键字看一下能不能搜到,实际上就是本节一张图中的位置。

image-20250712183856679

那么这里直接将函数拿下来,然后这样导入这些函数到这个对象中。

image-20250712184013773

直接运行发现报错Window未定义,那么这里上代理补环境是不是就行了。最终补的环境如下:

window = global;

Window = function (){};
window.__proto__ = Window.prototype;

window.top = window;
window.self = window;

document = {
    body:{},
};

剩下就是传入相同参数和浏览器对比一下得到的结果是否一致。

image-20250712184604893

可以看到得到的结果是一致的,那么封装发送请求,最终成功出值。

image-20250712185041659

三、分析wasm(2)

本节为记录另一种分析wasm的方式,通过追到这个函数里面,在这里分析sign的生成。

image-20250712194525118

这里传入的是两个地址,一个长度,那么在内存中对应的是什么呢?

image-20250712194401033

第二个参数就是传进来的这个content的在内存中的起始地址,第一参数现在所对应的地址是空的,那么继续向下跟。

image-20250712195046516

这里跟到了有一个sign的函数调用,同时穿的参数还是刚开始掉本自己的这三个参数,那么追进去看一下。

image-20250712195549186

最终定位到这里,那么在后面拼接了一个D#uqGdcw41pWeNXm,然后进行了hash,然后再往下就没有看到别的什么意思加密算法的了。

String.fromCharCode.apply(null,new Uint8Array(memories[0].buffer.slice(1114192,1114192+31)))  // 通过这种方式将内存中字符串提取出来

那这里将字符串拼接后的字符串进行hash,看一下得到的结果是否就是sign这个参数

image-20250712200458276

image-20250712200509539

发现是一样的,现在就多次测试,最终确定实际上就是在传入的字符串后面添加了那个盐值,然后进行的md5。再次请求测试,可以看到是没问题的。

oXM1-1752322205403)]

发现是一样的,现在就多次测试,最终确定实际上就是在传入的字符串后面添加了那个盐值,然后进行的md5。再次请求测试,可以看到是没问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~贝母~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值