加载中...

【Root-Me】 Javascript - Native code



水题,熟悉编码的样子就很容易做。

打开页面弹出了一个交互框,然后强制提交了,再报错 fail

打开浏览器开发者工具,切到 Network 找到名为 ch16.html 中的一段被混淆加密的 js 代码。

虽然 js 有很多种混淆加密方式(JsFuck、aaencode、jjencode等),这些加密方式都有明显的识别特征。但是讲真,这题的加密方式我也是第一次看到,Google也找不到是什么类型的混淆加密(有些大神怀疑是双重混淆)。不过就算不知道加密方式,也可以直接利用浏览器去解码(不然浏览器就不能运行这段 js 了)。

复制这段混淆的 js 代码,打开浏览器开发者工具,切到 Console,粘贴进去,回车运行,发现出现了第2步的交互框。说明这是一个 function 函数,刚刚我们通过 Console 控制台调用他了,那么我们让控制台把这个 function 函数打印出来就相当于解码了。

再次黏贴这段混淆的 js 代码到 Console, 然后删除末尾的括号 () 使其丢失 function 的语义(也可以把末尾的 () 改成 toString()),回车运行,此时 Console 就打印了 function 函数原文了。

从 function 函数的 if 条件找到了密码,完成挑战。


答案下载

flag 下载后的 flagzip 的文件需要手动更改后缀为 *.zip,然后解压即可(为了避免直接刷答案)


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
  目录