刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

攻防世界 XCTF WEB 高手区 NaNNaNNaNNaN-Batman WriteUp

题目:

一个附件,里面全是乱码

<script>_='function $(){e=getEleById("c").value;length==16^be0f23233ace98aa$c7be9){tfls_aie}na_h0lnrg{e_0iit\'_ns=[t,n,r,i];for(o=0;o<13;++o){	[0]);.splice(0,1)}}}	\'<input id="c">< onclick=$()>Ok</>\');delete _var ","docu.)match(/"];/)!=null=["	write(s[o%4]buttonif(e.ment';for(Y in $='	')with(_.split($[Y]))_=join(pop());eval(_)</script>

解题:

把乱码最后的eval改成alert,然后保存为html打开,可以得到明文代码。

<script>
    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)
            }
            console.log(s)
        }
    }

    document.write('<input id="c"><button onclick=$()>Ok</button>');
    delete _;
</script>

看代码应该是要输入一个字符串符合各项条件才能得到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)
}

直接在console中执行这段代码,就可以得到flag了。

flag{it's_a_h0le_in_0ne}


发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.