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

题目

题目为simple_js

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

首先,进入网站

提示输入密码

XCTF攻防世界web新手练习—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,正好是提示错误的字符串

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

看到有有一串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

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

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

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

FLAG

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

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/4087.html

(0)
陌涛的头像陌涛
上一篇 2020年9月29日
下一篇 2020年9月29日

相关推荐

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据