CTF for beginners 2015 広島 に参加してきました。
CTFは初挑戦でしたが、非常にアツいものでした。
(妨害コンテンツがおっさんホイホイに感じた気のせいでしょうかw)
結果としては1200点。
※スタッフなので前に名前は出ていません。
write-up
うろ覚え多数。違うこと書いてたらゴメンナサイ。
1. 確認
画面に出てる文字がそのままflag。
2. ログイン画面
admin/'OR'A'='A
3. xssさせる問題
4. SQLi
5. 数当てゲーム
6. Mailer
まずは解けそうなものから取りかかるため、後まわしにしました。ごめんなさい。
7. Follow Streeeeeam!!
pcapファイルをtcpでフィルタかけて、TCP Follow Streamでみると1文字ずつ文字を投げてるのが確認できる。
あとは :%s/\n//g で改行を落としてflagだけを切り出した。
8. insecure protocol
最初SSHかと思ったけど、タイトルがinsecureなのでtelnetとアタリをつけて挑んだ。
pcapをWiresharkで開いてtelnetでフィルタかける。
Follow TCP streamをみるとtelnetのログイン画面なので送信側のデータからログイン情報を取得。
あとはサーバにtelnetで入ればflagがとれる。
※ちなみにWiresharkでExportObjects > HTTPで、hint.pngなる画像も手に入る。
画像にはtelnetでサーバ接続してるのが映ってる。
9. dual-stack
タイトル見た時点でIPv6と判断。逃げました。
10. Message for you
Wiresharkでキャプチャしつつ配布されたexeを実行。
あんまり覚えてないんだけど、サーバとHTTPでやりとりするので、Basic認証かかった先からflagを取得する。
Basic認証のユーザ名とパスワードは、Wiresharkで確認。
11. Packet Quest 2.1
悔しい!もう一度やりたい問題。
クエストの文字で何段階かの設問になってると予想。
最初のpcapファイルでExportObjects > HTTPで大量のzipが保存できる。
大量のzipファイルをfileコマンドにかけると実際に中身がzipなの23.zipのみ。
23.zipを解凍すると次のpcapファイル。
HTTPでBasic認証解いて接続すればよかったんだけど・・・
焦っていたようで、認証に失敗した方のGET見て「え?認証どこ!?」ってパニックになってた。
帰って落ち着いて見てみると普通に次のGETにユーザ名とパスワードが。。。
12. 今日のひととき
fileコマンドでtxtファイルと分かった。
catたたくと文字が化けてて悩んだけど、素直にサクラエディタに投げたら日本語だったという・・・
13. もみじ
fileコマンドたたくとdocxだと分かる。
リネームしてワードパッドで開くともみじ饅頭の画像が出てくる。
ここで「もみじ饅頭」関連のワードをflagを入れても・・・ダメだった。
ふと画像を削除してみると極小のイメージがあって、そいつにflagが書かれてた
※あとから気づいたけど、docxはzipなので解凍すればもみじ饅頭とflagの画像ファイルが見れた。
14. 読めるかな?
flag取れたのに記憶にありません。
ファイルも残ってないし・・・どうやったんだ>俺
16. 読経
アセンブラ。読むのが時間かかりそうでパスした。
17. 保存できるかな?
zip.exe、IDA demoが固まって絶望したのでパスした
帰宅後、再度挑戦。
IDA demoで再度確認すると同名のzip.exeを作ろうとしてた。
zip.exeを別名にリネームして実行するとzip.exeを吐いた。
このzip.exeはBase64な値だったんだけど、文字列よりうしろにデータがあったのでエディタで削除。
削除後、base64 -d zip.exe > out
このoutをfileで見るとgzipだったので、拡張子を.gzにリネームして
gzip -d out.gz
outをfileでみるとzipだったので、さらにzip解凍
中にはflag.txt。
18. 入力を当てよう
IDA demoでデバッグを試みたが、IDA demoが毎回固まったのでパス。
20. 小学生でも解ける問題
"素直に"解けばよかったのに、ひねくれて数字をこねくり回してた。
まさかペイントで塗りつぶすだけだったとは・・・
次回のCTFへの対策
解けなかった悔しさがあるので、また挑みます。
今回の失敗を踏まえて、次回への対策を考えてみました。
- うろ覚えをなくす
- 解き方や途中のファイルはあとで見返すので必ず残す
- 問題(とそのファイル)は必ず保存する
- 帰ってから解きたいのに解けないもどかしい思いをすることに
- 時間をかければできる問題には取り組めばよかった
- 16の問題は解き方の資料が手元にあるのにパス・・・結果として貴重な100点を逃した
- 道具は手になじんだものを使う
- 普段ろくに使ってないツールは手間取って時間をロスした
- Gvimは毎日使ってるけどいつものと違うvimrcで別ソフトに感じた
- ムダに焦る要素を取り除いて冷静に挑みたい
- 道具(物理)も手になじんだものを使う
まとめ
問題へのアプローチを学んだ直後に実践の場があったおかげで、問題を解く楽しさを感じることができました。
このイベントの企画や講師、場所の提供などをしてくださった皆様のおかげです。ありがとうございました。
※次回もイベントがあればスタッフとして参加したいです。呼んでください!!!11