さて、どうだろうか。1行1行見ていると、何かに気付かないだろうか。
問題文を振り返ってみよう。
問題:
Exceptions in comments make
exceptional passwords
超意訳:
コメントの中の例外は
例外的なパスワードを作りだす。
何か1つ。何か1つの例外を見つけ出してほしい。1行ずつに異物とも共通点ともいえるものが1つである。さて、見つかっただろうか。
答えは、大文字である。
コメントの1行に1つ、大文字が混じっている。これが問題文のいうところの「例外」というものである。
大文字だけを抽出すると、
KJQEDVGHZIOSPZATUVPVTTUNFAYBIWBVS
となる。問題文はこの例外がパスワードを作り出すといっていた。この文字列を使用して先ほどパスワードが設定されていることにより展開できなかったファイルの展開を試みてほしい。問題なく展開することができるはずである。
下図は、展開を試み、パスワードを入力した結果、同名のファイルの上書き確認を聞かれ上書きを許可しているところである。最後の「file」コマンドは展開後のファイルタイプの調査のために実行している。
展開前の「file」コマンドの結果が、
WVLR_sV6_B2gfQneZ2gNS2rkD6c4fZxD: Zip archive data, at least v1.0 to extract
であるのに対し、展開後には
WVLR_sV6_B2gfQneZ2gNS2rkD6c4fZxD: data
となっていることから展開に成功したことが分かる。
さて、展開に成功したファイルは、「file」コマンドの結果からなんらかのデータファイルであることが分かっている。ひとまずファイルの内容を出力する「cat」コマンドとファイル中の文字列と思われる個所を出力する「strings」コマンドを実行してみよう。下図の実行結果を見てほしい。
もうお分かりだろう。明らかに英文らしい文字列が並んでいる。これが答えとなる文字列、「sometimeswhatyouseeisthekey」である。
さて、このPacket Madness 100の問題。前回紹介した2つの問題に比べると、技術と知識を問われる部分があることを読者の方々も感じていただけたと思う。それと同時に、技術と知識だけを駆使したとしても解けない問題であることも感じていただけたのではないだろうか。
筆者は今回が初めての参戦だったわけだが、普段の技術と知識だけでは太刀打ちできないことを痛感した。たった1つのひらめきが重要な要素であることを認識すると同時に、久しぶりに楽しい体験をすることができた。
「膨大な知識や技術も、たった1つのひらめきの前にひれ伏す」
といった言葉をどこかで聞いた記憶がある。その言葉を思い出し、思い知らされた48時間だった。
読者の方々に、筆者なりのCTF的問題を1つ、出題させていただこう。
下記ダウンロードリンクよりファイルをダウンロードして問題にチャレンジしていただきたい。問題のレベルとしては2回の連載にわたって紹介した「100」くらいのレベルだろう。
なお、問題の模範解答については次回、紹介させていただくがさすがにヒントもなくチャレンジし続けるのも苦痛だと思うので、筆者のTwitterで不定期ながらヒントを出していきたいと思う。
皆さんの挑戦、待っている。
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
▼辻氏のブログ「(n)」: http://n.pentest.jp/
▼辻氏のTwitter: http://twitter.com/ntsuji
Copyright © ITmedia, Inc. All Rights Reserved.