加载中...

【Root-Me】 Javascript - Obfuscation 3



水题。一打开页面就弹出交互框要求输入密码,随便输入提示 FAUX PASSWORD HAHA

打开浏览器开发者工具,切到 Network 找到名为 ch13.html 中的一段 js 代码。

在代码里发现一个用来判断输入 dechiffre 函数,但是稍微分析下就知道这个函数的作用就是:无论输入什么都返回 FAUX PASSWORD HAHA (第一行的 var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"; 就是这串提示的十进制ASCII码而已,用来混淆视听)。

关键是这个函数之后的一行代码:

String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

这行代码与上下文无任何关系,但是它给出了一个提示:fromCharCode 表示 ASCII 解码,而后面是一串 \x 的十六进制数。

先手工把所有 \x 替换为空格,打开 Burp Suite -> Decoder ,进行 ASCII hex 解码。

解码后得到一串夹杂了很多空格和逗号的伪十进制数字

5 5 , 5 6 , 5 4 , 7 9 , 1 1 5 , 6 9 , 1 1 4 , 1 1 6 , 1 0 7 , 4 9 , 5 0

手工将其整理下,得到真正的十进制 ASCII 编码: 55 56 54 79 115 69 114 116 107 49 50
由于 Burp Suite 不支持直接对十进制 ASCII 进行解码,先编码成十六进制,再进行 ASCII hex 解码,最后得到 7 8 6 O s E r t k 1 2

去掉空格串接起来就是真正的密码,完成挑战。


答案下载

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


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