【ksnctf】Crawling Chaos【writeup】

技術

とりあえずhttpsでつなぐとエラーがでるのでhttpにするとよいです

ソースコード見たらカオスなことになっていました

jsを難読化する技術があるらしい

console.logに打ち込むと読めるようになる

当たり前に知らんかった

でてきたコード

$(function() {
    $("form").submit(function() {
        var t = $('input[type="text"]').val();
        var p = Array(70, 152, 195, 284, 475, 612, 791, 896, 810, 850, 737, 1332, 1469, 1120, 1470, 832, 1785, 2196, 1520, 1480, 1449);
        var f = false;
        if (p.length == t.length) {
            f = true;
            for (var i = 0; i < p.length; i++)
                if (t.charCodeAt(i) * (i + 1) != p[i]) f = false;
            if (f) alert("(」・ω・)」うー!(/・ω・)/にゃー!");
        }
        if (!f) alert("No");
        return false;
    });
});

でてきたコード

  1. 入力文字が1文字目 = 70/1
  2. 入力文字が2文字目 = 152/2
  3. 入力文字が3文字目 = 195/3
  4. (略)

となる入力値もとめればよいので、以下のコードを実行することによってフラグが得られます

var p = [70, 152, 195, 284, 475, 612, 791, 896, 810, 850, 737, 1332, 1469, 1120, 1470, 832, 1785, 2196, 1520, 1480, 1449];

var str = p.map(function(code, i) {
    return String.fromCharCode(code / (1 + i));
}).join('');

console.log(str);

コメント

タイトルとURLをコピーしました