TDUCTF 2015 に参加した.

connpass.com

参加しました.WriteUpのようなものと感想です.

おわり?(crypto100)

文字列と色のついた数字が書かれたpngファイルが与えられる.いわゆるFukase暗号.知ってて良かったということで.

Flag:TDU{FUKASE_NO_OWARI}

clock(Misc150)

時計を写したjpgファイルが渡されて,この写真が撮られた日時を「TDU{YYYY_MM_DD_hh_mm}」の形式でpostせよ,という問題.適当なソフトでExif情報を見てみる.

f:id:gifunogi:20150901032220p:plain

正直に「TDU{2015_01_02_11_35}」とpostするが弾かれる.タイプミスをしてるのかと何度も確認したが通らず断念.

少ししてふと,「あの写真なんかロンドンっぽかったしグリニッジ標準時(GMT)だったのでは」と思い,日本標準時(JST)との時差を調べる.+09:00:00してpostしたところ通った.写真はグリニッジ天文台の時計だったそうです.(参照:グリニッジ標準時 - Wikipedia)

Flag:TDU{2015_01_02_20_35}

Lie(Web100)

与えられたリンクにアクセスするとクッキークリッカーのプレイ画像が貼ってあるページが表示される.初めはピンとこなかったがWeb問でクッキーの画像があるなら普通Cokkie見るよな,と思い覗いてみる.すると,「isPro=False」という記載があったため,「isPro=True」に変えて再アクセスしたところページ上にFlagが表示された.

Flag:TDU{H3IsPr0c}

14:50(Misc200)

「14:50に何かが起きる!」

なんか起きた #tductf

— 岐 (@gifunogi) 2015, 8月 30

競技用ソフトで突然さくらインターネットの紹介動画が流れ始める.すごい.1つ目のFlagは動画中に流れてきた.動画を右クリックしたところYoutubeから埋め込んであることが判明.2つ目のFlagはYoutube上の動画説明欄に記載されていた.

Flag1:TDU{試される大地}
Flag2:TDU{説明にもフラグが}

nullflood(Misc100)

「zeros」という名前のファイルが与えられる.fileコマンドでは「data」のみ,stringsコマンドでは何も引っかからない.バイナリエディタで開いてみると,ファイル名通りに大量の「00」.不一致検索で「00」を指定して,一文字ずつちまちまと見ていくとFlagが現れた.

Flag:TDU{Strings_is_useful}

SQL Practice(Web300)

フォームにSQL文を入力すると,@nomuken氏のツイート約6万件から指定した文字列を引っ張ってこれるサービスが与えられる.SQL文は「'OR 'a'='a」しか書いたことが無い.まずい.調べる.ソースコードも公開されていたため,「tweets」というテーブルが用意されていたことが分かった.パターンマッチの方法を検索して,「select * from tweets where * like '%TDU{%';」と,入力するとフラグを得られた.

FLAG:失念

cheap camouflage(Misc100)

「pngpong」と書かれたpngファイルが与えられる.文字列について調べてみて透過pngファイル?と思ったがペイントソフトで開いてみても特に変わったところはない.
バイナリエディタで眺めると,末尾近くにflag.txtの文字列を発見.偽装ファイルなのかなと思い拡張子をzipに変更すると,鍵付きzipであることが分かった.(他の人のWritwUpを見るとzip部分だけ削っている人の方がが多い?)既知平文攻撃だといいなと思いながら中身を覗いてもflag.txt以外は入っていない.少し悩んだ後,「pngpong」そのものが鍵付きzipのパスワードであることに気づいた.

Flag:TDU{a_file_followed_the_png}

TDUCTF運営からフラグを盗め(Network400)

「dump.pcap」というファイルが与えられる.NetworkMinerで覗くとメールのやり取りであることが分かった.しかしエンコードの問題で読めない.

f:id:gifunogi:20150901051316p:plain

「$B$ 文字化け」等で検索すると,変換サービスを発見.(参照:化け文字解読 SYSTEM)無事文面も解読でき,鍵付きzip2つとそのパスワードのやりとりであることが分かった.

f:id:gifunogi:20150901054543p:plain1つ目のzipの鍵は文面上に記載されていたため展開できた.中にはflag.txtとchibiegg.jpg(@chibiegg氏の写真).2つ目のzipの鍵は文面上になかったが,中を覗くとchibiegg.jpgがあることが判明.今度こそ既知平文攻撃!と思ったがうまく行かずそのまま時間切れ.

Flag1:TDU{I_KNOW_CREAR_TEXT_IS_NOT_SECURE}
Flag2:

総括

最終成績は 10solved 1189points で約70人中17位でした.しかしFlagを最後まで貯めこんでいた人がいたとかの話を聞いたのであまりアテにならない数字っぽいです.
WriteUpを見ていただければ分かるかも知れませんが,今回自分が解けたものは初心者が「分からないけどググれば何かしら出る」といった難易度のものが多く,約6時間常に楽しんでCTFができました.見た目からpwn問やbinary問を最後まで後回しにしてほとんど触れられなかったことだけ,少し後悔です.

改めて場所,システムの提供をして頂いたさくらインターネット様,およびTDUCTF運営の皆様お疲れ様でした.そして,ありがとうございました.非常に楽しかったです.