CTF-攻防世界-Web-新12-simple_js
题目描述:
小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
考察内容:
考察JS的用法
1 function dechiffre(pass_enc) { 2 var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"; // FAUX PASSWORD HAHA 3 var tab = pass_enc.split(','); // 55,56,54,79,115,69,114,116,107,49,50 4 var tab2 = pass.split(','); 5 var i, j, k, l = 0, m, n, o, p = ""; 6 i = 0; 7 j = tab.length; // 11 8 k = j + (l) + (n = 0); 9 n = tab2.length; // 18 10 for (i = (o = 0); i < (k = j = n); i++) { 11 o = tab[i - l]; 12 p += String.fromCharCode((o = tab2[i])); 13 if (i == 5) break; 14 } 15 for (i = (o = 0); i < (k = j = n); i++) { 16 o = tab[i - l]; 17 if (i > 5 && i < k - 1) 18 p += String.fromCharCode((o = tab2[i])); 19 } 20 p += String.fromCharCode(tab2[17]); 21 pass = p; 22 return pass; 23 } 24 // 55,56,54,79,115,69,114,116,107,49,50 // ASCII: 786OsErtk12 25 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")); 26 27 h = window.prompt('Enter password'); 28 alert(dechiffre(h));
分析:
分析函数
十六进制转换成字符串
\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的print函数或者在线https://www.bejson.com/convert/ox2str/将十六进制转换为10进制
十进制:55,56,54,79,115,69,114,116,107,49,50
再次将十进制转换成ASCII:786OsErtk12
拼凑flag:
Cyberpeace{786OsErtk12}

浙公网安备 33010602011771号