资安学习路上-picoCTF 解题(Web)2

4. Some Assembly Required 1

http://img2.58codes.com/2024/20148431OT4knzaej7.png

按右键,检视网页原始码
http://img2.58codes.com/2024/20148431OVpYMNEzOg.png

点击js档看到下面,虽然知道是js档,但有点乱
http://img2.58codes.com/2024/20148431HHkjUFK6aW.png

用(线上Javascript工具,执行看看
http://img2.58codes.com/2024/20148431I9gWZjCtSh.png

接着为了再去混淆度,把常出现的两个参数findMiddlePosition跟navigatePop丢进去,看他的结果,并已编译后的值带入
http://img2.58codes.com/2024/20148431dV8EBIkqey.png

结果如下

(async() => {  const findMiddlePosition = _0x4e0e;  let leftBranch = await fetch(./JIFxzHyW8W);  let rightBranch = await WebAssembly[instantiate](await leftBranch[arrayBuffer]());  let module = rightBranch[instance];  exports = module["exports"];})();/** * @return {undefined} */function onButtonPress() {  const navigatePop = _0x4e0e;  let params = document["getElementById"](input)[value];  for (let i = 0; i < params["length"]; i++) {    exports[copy_char](params[charCodeAt](i), i);  }  exports["copy_char"](0, params["length"]);  if (exports[check_flag]() == 1) {    document[getElementById](result)[innerHTML] = Correct!;  } else {    document[getElementById](result)[innerHTML] = Incorrect!;  }}

知道是从JIFxzHyW8W下载wasm档,是用copy_char存每个flag,再用check_flag来确认是否正确,用wget指令下载wasm档,在用kali内建wasm2wat将wasm档转成wat档(WebAssembly 文字格式)
http://img2.58codes.com/2024/20148431uG8RwbNg0k.png

用Cat指令得到flag
http://img2.58codes.com/2024/20148431Tqo620hbMN.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章