TDU CTF 2014 Satellite in ConoHa に参加してきた
Nomuken氏の主催するTDU CTFに参加してきた。connpass.com
CTFに参加するのは前回に続いて2度目(前々回を含めるなら3回目)で、外部の人もいるところに行くのは初めてである。
会場のConoHa、すごく綺麗なオフィスだった。
結果から言うと、1670点で4位だった。まあ実際にはプロの方々が以下のかっこいいフラグを入れていたようなのでもうちょい下ですが、まああまり経験ない身としては健闘したんじゃないかと。
TDU{I_Am_Beginner} -5000pt TDU{I_Am_Not_Beginner} -1000pt TDU{I_Am_Not_Pro} -500pt TDU{I_Am_Pro} -100pt
write-upって書いたことないんだけどとりあえず書けるだけ書いてみる。
Easy SQLi test
普通のSQLiっぽかったんだが、最初は「' OR 1=1;--」でやってたらシングルクォーテーションがエスケープされててダブルクォーテーションじゃないといけないということが気がつかなくて時間がかかった。
ちなみに後から知ったのだが、発行されるSQL文の後ろに「LIMIT 5」が含まれているので後ろをコメントアウトしないと一つ目のフラグが出てこないらしい。
その後はUNIONでsqlite_masterだかと結合して表示、flagTable(だっけ?)にある2つめのフラグをsubmit。
それ以降は忘れた。
String Compare
とりあえずStringsに噛ませたら、「MinamiKotori」「TDU{%s_is_very_cutie}」といういかにもな文字列が並んでいたので、とりあえず組み合わせてみたら通った。
PhoneApps
#tduCTF のPhoneApps、「見た瞬間に親方の匂いがした」って言ったらいろんな人にめっちゃ笑われた
— あると (@twinkfrag) March 29, 2015
まあ実際親方というかWindows Phoneな感じはしていた。
とりあえずアーカイブなのでzipとして開ける。すると画像とxmlとdllが出てくる。
そこで、やはりWindows Phoneで.Netだろうとあたりをつけて、PivotApp1.dllをILSpy(事前の告知メールで用意しておくとよいソフトとして挙げられていた)で開く。
とりあえずViewに直接書いてある可能性から調べる。
mainpage.xamlを見ると、次のような部分が見つかる。
直接フラグは書いてなさそうだが、「Find a flag!」付近にPathタグが見つかる。
これを、適当なWPFアプリケーションに貼り付けて描画させることでフラグが得られる。
起きているか
みたいな問題名のやつ。question.pcapが渡されるがWireSharkで見ても分からないやつ。
最初分からなかったが後半になってバイナリ問題だからとStringsで見直したら
TDU{TDUCTF} //this is not a flg TDU{HANYABUSHI} it's a not valid TDU{HANYABUSHI} it's a not valid TDU{ICHIIYUI} // it's a not flag TDU TDU{ICHIIYUI} // it's a not flag TDU TDU{NONOHARA} // it's a not flag {PC TDU{NONOHARA} // it's a not flag {PC TDU{HINATA} // this is not a flg AP_ TDU{HINATA} // this is not a flg AP_ TDU{AIKAWA} // this is not a flg BLO TDU{AIKAWA} // this is not a flg BLO TDU{OKANOKEI}//this is not a flg CK_ TDU{OKANOKEI}//this is not a flg CK_ TDU{OKAASAN} //this is not a flg PAD TDU{OKAASAN} //this is not a flg PAD TDU{YUYUSHIKI} // it's not a flg DIN TDU{YUYUSHIKI} // it's not a flg DIN I LOVE YUYUSHIKI! YUYUSHIKI! I LOVE YUYUSHIKI! YUYUSHIKI! KIMIHA TOTEMO ERAI! YOKU YONDA!
こんな感じに出てきたので、ばらけてるフラグを組み合わせて出した。
前述のStringsが3文字以上のみの文字列を認識することは知っていたので最後の2文字だけ補って、
TDU{PCAP_BLOCK_PADDING}
を得る。
Evidence
RawImageというファイルが渡された。
万能解凍ツールである7zipさんに噛ませると1ディレクトリに2ファイルだけがあったがフラグは見当たらなかった。
そこでFTK Imagerに噛ませると、削除済みファイルとして!oc.pdfというファイルが出てきてフラグを得る。
感想
なんか気付いたら結構得点できていて後でびっくりした。
もうそろそろ初心者名乗れなくなってしまった感あるので次回は経験者的な枠かなという感じではある。
だんだんCTFが楽しくなってきたので今度はもっと他のCTFにも参加してみようと思う。