恥ずかしげもなく技術ブログ

プログラミング等について書いていきます.

SECCON2014

@author = poifull10

 

SECCON 2014 http://2014.seccon.jp/ の予選に初めて参加してきました.

予選方法はCTFで,問題を解いてFlag(=特定の文字列)がゲットできればその問題がクリアとなります.問題は複数あってそれぞれの問題には点数がついていますので,多く得点をゲットした人がランキングの上位になるという仕組みです.

CTFにはグループで参加することができ,予選はランキング上位7チームのみが突破することができます.

 

僕はチーム名KUISAPとして参加してきました.ちなみにOS Xです.

スコアは600点で,ランキング129位.おそらくwriteup書いている人たちの中で最弱だと思いますw

感想としては,初めての参加でパケットキャプチャのやり方も知らず&分野が全く違うドシロウトでチャレンジしましたが,なかなか楽しめました.また参加しようと思います.

 

最後に,完全な素人目線で書いた簡素なwrite upです.

 

----

問 (練習問題) 100点

  Flagが与えられていますので,それをフォームに入力して終わり.サービス問題(つまりランキングで0点の人たちは実質参加していないことになる…).

 

問 パケットキャプチャ 100点

 パケットファイル?が与えられているのでそれをWireSharkで開く.WireSharkX windowシステムで動くのでXQuartzを入れないといけない.WireSharkで通信内容を見ていると,FTPでFlag.txtを通信しているのがわかる.55番目のログの中のデータに該当する部分が通信されたFlag.txtの内容である.FTPではデータをbase64エンコードしているらしく,これはbase64 -D でデコードが出来る.

echo '文字列' | base64 -D

でフラグゲット.

ちなみに,WebでBasic認証をするときIDとPassをコロンでつなげたid:Passbase64エンコードされているらしい.

 

問 encoded.txt 100点

 デコードせよ,という問題.ファイルを開いても全く読めず文字化けが激しく全く読めないが先頭は英語でFRPPBAと書かれていた.友人が「SECCON」か?と言っていたのでPPの部分がCCに対応するとわかった.つまりシーザー暗号.その後13/47という数字も続いていたので,ggると英語にはrot13,日本語にはrot47を使ってエンコードするという記述があったのでnkfコマンドでデコード. nkf -r encoded.txt で正解.

 

問 箱庭SQLi 100点

 とりあえずSQLインジェクションを仕掛ける.全部のレコードが吐出された.それで?状態.レコードでggるとよくあるテンプレのレコードみたい?よくわからん.解けませんでした.

 

アセンブリ 100点

 見た感じひたすら頑張る感じ?便利なソフト無いんかな…友人が頑張ってくれました.

 

問 FileSystem 100点

 とりあえずファイルサイズでバイナリファイルを検索してみる.しかしノーヒット…なんでや… 過去問を解いたブログにはファイルシステムを作って,そのファイルシステムにファイルを追加することでその差分からタイムスタンプを見つけるという方法(http://shoboon.hatenablog.jp/entry/2013/10/10/111139)が書いてあった.同じようにやってみるも不明.ファイル名さえわかればいいのでとりあえず片っ端からファイル名を入力してみる…となんと先頭が答え.まぐれでクリア.

-- 追記

数値の配列が逆順なようですね…例えば0xABCDEFだと実際にはEF CD ABと並んでいる,みたいな.よくよく考えたら当たり前ですね.数値を逆にすれば見つかりました.

 

問 重ねてみよ 100点

 gifアニメーションを全て足しあわせて反転させればQRコードに.それを読み込んで終わり.