推荐
关注
TOP
Message

某Gov Wasm 逆向调用流程分析

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

前言

本文网站过于敏感,故不展示网站。

流程分析

抓包得知 接口需要X-sign参数

所以直接搜索 X-sign

发现下文有个参数

这里直接跟栈。

这里我们可以简单分析下
encrypt 初始化了 这些参数
然后调用b 生成了加密。

接着跟栈,发现是个wasm

那这里就不好搞了。

本着我们就是彩笔的想法。wasm怎么搞? 就是补,就是调。

OK,然后我们往上滑。

这里不难发现。这是个webpack。我们先尝试着去把这个JS都down下来。然后用webpack去调用。

这里我们把环境和声明补全。调用发现怎么补都补不出这个方法。

这里就很难搞了。
所以假定自己搞过wasm 所以我们得知。搞wasm 一定要先初始化声明这个对象。

然后我们得知初始化一定需要调用instantiate

所以这里我们回头把网站的所有初始化的地方都打上断点,不多一共也就六个。


然后发现断点断在这个地方。还附带了个URL 那这个URL应该就是wasm都链接。

这里我们直接请求这个链接。

这里继续假定我们之前搞过wasm 所以得知我们可以使用使用ArrayBuffer加载这个wasm
所以得到如下方法

fetch("xxxx.wasm")
    .then(res => res.arrayBuffer())
    .then(bytes => WebAssembly.instantiate(bytes, {})

这里链接丢进去 发现是可以请求到的。但这个时候我们无法得知是不是这个wasm。也许有多个
所以这里使用如下方法来确认这个wasm中有没有这个方法

console.log("导出函数:", Object.keys(instance.exports));

后续的话 随便补补扣扣就出来了。

结果

发现也没什么干货,偶尔随便搞搞

posted @ 2025-05-09 13:57  始識  阅读(296)  评论(0)    收藏  举报