SECCON 2015 Online CTF write-up

SECCON 2015 オンライン予選に一人チームで参加しました。結果は600点でした。

解けたのは、

  • Start SECCON CTF (50)
  • SECCON WARS 2015 (100)
  • Connect the server (100)
  • Entry form (100)
  • Steganography 1 (100)
  • Steganography 3 (100)
  • Last Challenge (Thank you for playing) (50)

でした。

解けた問題

Start SECCON CTF (50), Last Challenge (50)

両方とも一個目の例のとおりに置き換える換字式暗号でした。

SECCON WARS 2015 (100)

youtu.be

動画を見ると真ん中にQRコードのように見える部分があったので、

  1. 動画から静止画を作成
  2. pnm形式に変換
  3. rubyで見やすいように色を変換
  4. pngに戻す
  5. 重ねてQRコードを表示
  6. 色を修正して読み込み

という順で処理しました。重ねて表示する部分は技術力が無いのでhtmlで書いてブラウザで見ました(非常に重い)。

f:id:kanki2rui:20151207003757p:plain

うまく読み込めなかったのでペイントで色を変えたりしたら読み込めました。

f:id:kanki2rui:20151207003859p:plain

flag: SECCON{TH3F0RC3AVVAK3N53P7}

Connect the server (100)

ブラウザでアクセスしたらダウンロードされたファイルを見るとフラグが書いてありました。ncでアクセスしたときは見えませんでした。

flag: SECCON{Sometimes_what_you_see_is_NOT_what_you_get}

Entry form (100)

最初はXSSとかSQLインジェクションかと思い、色々入力してました。攻撃に使えてしまうから無いだろうと思いながら適当に取得したメルアドを入力したりしてもメールは来ませんでした。

ふとurlを削ってみるとディレクトリのファイル一覧が見れました。register.cgi_bakといういかにもなファイルを見るとソースコードが見れました。他にもSECRETSというディレクトリ(開くと空のindex.htmlが表示されるだけ)もありました。

perlのopenの部分でOSコマンドインジェクションができるみたいだったので、

http://entryform.pwn.seccon.jp/register.cgi?mail=%27|echo%20`less%20log`--%27&name=ls%7C&action=ls| としてログを見て終わりかと思ったら何も表示されませんでした。

lsしてみるとcgiから読み込み権限がないこととSECRETSというディレクトリ内にbackdoor123.phpというファイルが存在しているのが分かりました。このファイルは?cmd=の形で渡した引数を実行してくれるのでlogを表示させたところフラグが入手できました。ただ、他の参加者がXSSを仕込んでいてjavascriptを全部実行すると別のurlに飛ばされました。

flag: SECCON{Glory_will_shine_on_you.}

Steganography 1 (100)

やたらと容量が大きいのでバイナリエディタで見ると、GIFマジックナンバーをいくつか発見。

切り出してみると、4つの緑の数字でした。

フラグの形式の補足からBTTFのデロリアンの日付だと思ったので、BTTFの日付をググって片っ端から入力したところ正答しました。

正攻法はファイル内にあるほかの形式の画像も切り出すらしいです。

flag: SECCON{OCT 21 2015 0728}

Steganography 3 (100)

画像を開くと謎のバイナリをバイナリエディタで開いているのが写っている。

右のブラウザのページを探すとThis problem can be solved by pre-school children.... Who knows the answer? i can't figure it out !!? | Yahoo Answersでした。

ここからバイナリエディタの部分をペイントで塗った結果、フラグが手に入りました。右下のペイントもヒントだったんだなと後で気づきました。f:id:kanki2rui:20151220011834p:plain

flag: SECCON{the_hidden_message_ever}

解けなかった問題

Unzip the file

ZIPの既知平文攻撃であることと、中に入っているテキストがsecconのメルマガであるところまでは分かり、実際に攻撃したのですが、圧縮率が違ったのか突破できませんでした。 

Command-Line Quiz

4番目のコマンドが分からなかったです。

Bonsai XSS Revolutions

25番ポートを利用しているところまでは分かりncで接続したのですが、どこにメールを送るのかわからなかったです。

Exec dmesg

中のISOの中まで見れましたがそこからどうするのかわからなかったです。

4042

問題名からUTF-9だと分かったんですが、実装力が無かったです。

感想

きちんと解くことができる問題も存在して嬉しかったです。ただもう少しで解けそうな問題もあったため知識をよりつけていきたいと思います。