XCTF攻防世界web新手练习—simple_js

题目

题目为simple_js

首先,进入网站

提示输入密码

随便输入一个,提示输入错误,之后查看源码,得到js源代码,是一个解码函数

<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="70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"对应的字符
用python处理一下,得到该字符串为: FAUX PASSWORD HAHA,正好是提示错误的字符串

看到有有一串16进制的字符

\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

用python跑一下(转为10进制),得

55,56,54,79,115,69,114,116,107,49,50

再转换为ASCII码相对应的,得

FLAG

结合题目开始所说的flag格式,flag为Cyberpeace{786OsErtk12}
 

生成海报

陌涛

这个博主很懒,懒死了。

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐

微信扫一扫,分享到朋友圈

XCTF攻防世界web新手练习—simple_js