先把附件下载下来,然后打开,一堆js乱码
把最后的eval修改成alert,再将文件后缀修改成html,用浏览器打开,乱码变正常了
之后把js代码对齐一下,这里用这个网站进行对齐 https://beautifier.io/
function $() { var e = document.getElementById("c").value; if (e.length == 16) if (e.match(/^be0f23/) != null) if (e.match(/233ac/) != null) if (e.match(/e98aa$/) != null) if (e.match(/c7be9/) != null) { var t = ["fl", "s_a", "i", "e}"]; var n = ["a", "_h0l", "n"]; var r = ["g{", "e", "_0"]; var i = ["it'", "_", "n"]; var s = [t, n, r, i]; for (var o = 0; o < 13; ++o) { document.write(s[o % 4][0]); s[o % 4].splice(0, 1) } } } document.write('<input id="c"><button onclick=$()>Ok</button>');
把e的值输出来就是就获取flag,要满足上面的if,在正则中^表示开头,$表示末尾,同时还要满足长度为16位
那么把上面的值拼接一下e的值就是 be0f233ac7be98aa,输入获取flag
或者直接把中间那段代码直接运行,丢给浏览器的控制台,跑出来就是flag
var t = ["fl", "s_a", "i", "e}"]; var n = ["a", "_h0l", "n"]; var r = ["g{", "e", "_0"]; var i = ["it'", "_", "n"]; var s = [t, n, r, i]; for (var o = 0; o < 13; ++o) { document.write(s[o % 4][0]); s[o % 4].splice(0, 1) }
flag{it's_a_h0le_in_0ne}