[ksnctf] Crawling Chaos

ksnctfにチャレンジ
第3問目です。

※ksnctfは常駐型のCTFサイトです。
※問題のページはコチラです。

Crawling Chaos

難読化されたJavaScriptに関する問題です。
パスワードを判定していると思われるJavaScriptが
 (ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー
といったAAを使って難読化されています。
これを手動で解読するのは面倒ですので
FireBugなどのツールを使って解析します。

FireBugのスクリプトタグで表示モードが
すべて(= 静的 評価 イベントスクリプト 表示)
になっていることを確認し、適当な文字列を 送信 すると

難読化されたコードから生成された本丸のコードが読めるようになります。
これによると入力された文字に対して
文字列の N文字目 が Mの場合
Mの文字コード * N を行って 配列p の内容と一致しているか
調べているので逆に 配列P の数値を 1 ,2 ,3 … で割っていけば
元の文字コードがわかります。

#include <stdio.h>

int main()
{
    int i;
    int p[] = { 70,152,195,284,475,612,791,896,810,
                  850,737,1332,1469,1120,1470,832,1785,
                  2196,1520,1480,1449 };
    for(i=0; i<(sizeof(p)/sizeof(int)); i++)
    {
        putchar(p[i]/(i+1));
    }
    putchar('\n');
    return 0;
}

コメントする