攻防世界web-NaNNaNNaNNaN-Batman

先把附件下载下来,然后打开,一堆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}

原文地址:https://www.cnblogs.com/gaonuoqi/p/11767704.html