CTF

CTFweb(二)

本篇还是CTFweb刷题的记录,来自xctf。每天更新两道~

1.小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

打开网址出现输入框,看看能不能带一个其它命令进去

02 16

命令执行

  • command1 && command2 先执行 command1,如果为真,再执行 command2
  • command1 | command2   只执行 command2
  • command1 & command2   先执行 command2 后执行 command1
  • command1 || command2  先执行 command1,如果为假,再执行 command2

带入find /  -name  ” flag*”   ,看看有没有flag

02 17

果然有,那就直接打开,应该就可以得到flag了

02 18
2.小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

打开网页

02 19

输入密码返回错误,在这里是找不到什么了,看看源码

02 20

<html>
<head>
    <title>JS</title>
    <script type="text/javascript">
    function dechiffre(pass_enc){
        var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
        var tab  = pass_enc.split(',');
                var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
                        k = j + (l) + (n=0);
                        n = tab2.length;
                        for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
                                if(i == 5)break;}
                        for(i = (o=0); i < (k = j = n); i++ ){
                        o = tab[i-l];
                                if(i > 5 && i < k-1)
                                        p += String.fromCharCode((o = tab2[i]));
                        }
        p += String.fromCharCode(tab2[17]);
        pass = p;return pass;
    }
    String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

    h = window.prompt('Enter password');
    alert( dechiffre(h) );

</script>
</head>

</html>

阅读代码,发现输入任何值都会输出pass转化成的字符串,下面有个奇怪的String,怀疑密码就在这里。首先把这段16进制密文转换为10进制(base16 \x只是分隔符)。

02 21

应该是ASC2码值,转化成字符串

02 22

得到 Cyberpeace{786OsErtk12}

明天继续更新!


发表评论