13、XCTF simple_js

小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
打开网站就是让我们输密码,那就输呗,
他说我FAUX PASSWORD HAHA
那应该就是输错了呗。
F12源码,发现了一串代码

 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) );

发现了两个字符,上脚本跑一下,把他们转为ASCII码。

70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,
72,65

转为字符串为
FAUX PASSWORD HAHA
\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 //16进制
用16进制转换文本,转为字符串,
55,56,54,79,115,69,114,116,107,49,50
在把字符转为字符串
786OsErtk12
感觉他就是flag,试一下呗。
还真是。
Cyberpeace{786OsErtk12}
基础知识:
\x35\x35\x2c\x35形状的为16进制字符,可将其转换为文本
转换为ASCII码的脚本
b=[55,56,54,79,115,69,114,116,107,49,50]
for i in b:
print(chr(i),end=’’)

上一篇:shell 脚本中的sed用法


下一篇:Python命名规范