CTF for beginners 2015 広島 Write-up

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取れたのに記憶にありません。
ファイルも残ってないし・・・どうやったんだ>俺

15. 気長に待ちましょう

実行すると裏でpingを始める実行ファイルがお題。
IDA demoでデバッグしてみるも、IDA demoが毎回固まったので断念。

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が毎回固まったのでパス。

19. QR普及委員会特別問題

QRコードが貼り付けてあるだけなんだけど、なぜか読み取れない。
あとから隅のマーカー部分?を塗りつぶせばよかったと聞きへこむ。

20. 小学生でも解ける問題

"素直に"解けばよかったのに、ひねくれて数字をこねくり回してた。
まさかペイントで塗りつぶすだけだったとは・・・

次回のCTFへの対策

解けなかった悔しさがあるので、また挑みます。
今回の失敗を踏まえて、次回への対策を考えてみました。

  • うろ覚えをなくす
    • 解き方や途中のファイルはあとで見返すので必ず残す
  • 問題(とそのファイル)は必ず保存する
    • 帰ってから解きたいのに解けないもどかしい思いをすることに
  • 時間をかければできる問題には取り組めばよかった
    • 16の問題は解き方の資料が手元にあるのにパス・・・結果として貴重な100点を逃した
  • 道具は手になじんだものを使う
    • 普段ろくに使ってないツールは手間取って時間をロスした
    • Gvimは毎日使ってるけどいつものと違うvimrcで別ソフトに感じた
    • ムダに焦る要素を取り除いて冷静に挑みたい
  • 道具(物理)も手になじんだものを使う
    • 端末にあわせて小さい不慣れなBluetoothキーボード持って行ったらtypo連発した
    • FキーがFn + マルチメディアキーで耐えられなかった
    • ※でも、メカニカルキーボードを会場に持って行く勇気はないので考える必要あり

まとめ

問題へのアプローチを学んだ直後に実践の場があったおかげで、問題を解く楽しさを感じることができました。
このイベントの企画や講師、場所の提供などをしてくださった皆様のおかげです。ありがとうございました。
※次回もイベントがあればスタッフとして参加したいです。呼んでください!!!11