XCTF-NaNNaNNaNNaN-Batman

先把附件下载下来,然后打开,mac自动打开方式是浏览器打开

看到一个输入框,怀疑是sql注入,提交内容按按钮没反应

然后检查元素,看到有乱码

XCTF-NaNNaNNaNNaN-Batman

 然后本人不会了,太菜了,看别人的WP。

附件下载下来用sublime查看,终于看到了别人所说的”正常“的乱码。

eval()改为alert(),用浏览器打开,弹窗显示了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,把附件的eval()改回,在输入框输入,获取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}

XCTF-NaNNaNNaNNaN-Batman

 

上一篇:项目实战中PO模型的设计与封装


下一篇:线性代数笔记: Cholesky分解