PlayGroundでCTFコンテストを開きました(出題編)
コンテスト
PlayGroundのtakumahです。表題の通り、PlayGround内でCTFコンテストを開いたので好評をもらった問題についての解説を書きます。
S: Meshitero2
ラーメンの画像に隠されたフラグを見つける問題です。比較対象としてほとんど同じ画像が別の問題として上がっているので、それとの差分を取ることでフラグが得られる問題でした。
こんな感じで得られます。(少々読みにくいですが…)
T: Strange Noise
T
0:00
/0:12
奇妙な音声ファイルからフラグを見つける問題です。この音声ファイルのスペクトログラムを見るとフラグが書かれている!というスペクトログラムアートと呼ばれる技術を用いています。音声ファイルの作成にはこの記事を参考にしました。
Y: check?
SECCON2013予選で出題されたQRコードのデータ層からフラグを読み取る問題にフィーチャーされた問題です。
QRコードのデータ層のみで構成された画像からデータを復元する問題で、現在はツール(スクリプト)があって比較的簡単ではあるのですが、
僕はデバッグにおいて人力で読み取りました。2度とやりたくないです。
Ex-B: Meshitero3
またもやラーメンの画像に隠されたフラグを解く問題です。この問題は画像の一部が微妙におかしくなっていることをヒントに、画像のバイナリが一部変更されているものだと認識できます。そこでバイナリレベルで差分を取ってみるとbase64の文字列が得られ、デコードすることでフラグが得られます。
〆
前半問題はCTFらしさというよりも解けることの面白さを重視したので、多くの人に解いてもらうことができました。出題側になると解かれた悔しさもありますが、解いてくれたという喜びもあることを実感できました。