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)
動画を見ると真ん中にQRコードのように見える部分があったので、
という順で処理しました。重ねて表示する部分は技術力が無いのでhtmlで書いてブラウザで見ました(非常に重い)。
うまく読み込めなかったのでペイントで色を変えたりしたら読み込めました。
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でした。
ここからバイナリエディタの部分をペイントで塗った結果、フラグが手に入りました。右下のペイントもヒントだったんだなと後で気づきました。
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だと分かったんですが、実装力が無かったです。
感想
きちんと解くことができる問題も存在して嬉しかったです。ただもう少しで解けそうな問題もあったため知識をよりつけていきたいと思います。