MENU

文章目录

    tinyctf-2014-NaNNaNNaNNaN-Batman-writeup

    • 为什么要写2014年的题的writeup:因为在做某CTF训练平台的题

    首先题目给了一个附件,叫做web100.zip,解压后就是一个web100文件

    记事本打开是这样的:

    大部分看得懂,大部分是框框,看到有script,function字样,猜测是php代码,拖到浏览器中看一看:

    一个输入框,此时看到末尾是一个执行的eval函数:

    我们把它改为显示alert再拖进来看看:

    欸,乱码没了,得到了php源代码:

    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>');delete _

    我们用工具格式化一下:

    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>');
    delete _

    代码意思很简单,用一个正则表达式,只要输入的字符串以be0f23开头,以e98aa结尾,中间含有233acc7be9字符串就会执行下面的函数,那么我们构造be0f233ac7be98aa字符串回到那个输入框:

    得到flag:flag{it's_a_h0le_in_0ne}

    最后编辑于: 2019 年 07 月 13 日