sekai013's blog

JavaScriptとかを勉強する

KSNCTF #3 Crawling Chaos

問題

ksnctf - 3 Crawling Chaos

考えたこと

指定されたページに飛んだらフォームがあったのでとりあえずクリックしたら NG って言われたので、ソースを見たら異常な script タグがあった。

<script>
(ᒧᆞωᆞ)=(/ᆞωᆞ/),(ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー,(〳ᆞωᆞ)=(ᒧᆞωᆞ),(以下略)
</script>

うーにゃーというのは這いよれニャル子さんというアニメのやつで、JavaScript ではなさそうだけど、type 指定されてないので、JavaScript っぽい。顔文字をコードに置き換えてるのかなぁという気がした。
No.2 がノーヒントで解けたのでノーヒントで解くぞと思って調子に乗ってたけど、Chromium の Developer tools で30分くらい粘ったけどわからなかったのでググった。
KSNCTF のヒント書いてるページを見つけたのでチラっと見た。

ksnctfに取り組んだ話 - ichirin2501's diary

気合いが足りないらしい。もう30分くらい粘ったけど何も得られなかったのでググった。
Firefox を使えというようなことを見たので、Firefox に切り替えたら2秒でもとの JavaScript っぽいのが見つかった。時代はFirefox!!Mozilla最高!!!

// 出てきたコードを勝手に整形した
$(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;
    });
});

これくらいの JavaScript なら読めるので、答え出してくれるやつを、せっかくなので JavaScript で書いた。

https://github.com/sekai013/ksnctf/blob/master/crawling_chaos/crawlingChaos.js

走らせたらそのまま旗出てきたので通したら合ってた。

思ったこととか

Firefox 神!! Mozilla 最高!!!
いろんなツールあるんだから1つで詰まったら別のを使っていきたい!!! Chromium でもなんとかならないか頑張ってみたい!!