4/30の午前2時から5/2の午前2時までの48時間でGoogle Capture The Flagが開催されていました。
今回はチームwabisabiのメンバーとして参加しました。全チーム中では318/2403、0点のチームを除いた中では318/911でした。
解けた問題は以下の4問です。
- In Recorded Conversation
- Spotted Quoll
- Ernst Echidna
- Purple Wombats
In Recorded Conversation(Forensics / 25 points)
IRCのパケットが配布される。
WiresharkのTCPストリームで見てみると、
会話の最後にそれぞれの人が順番にflagの文字列を喋っているのでそれを繋げる。
CTF{some_leaks_are_good_leaks_}
Spotted Quoll(Web / 50 points)
ゾンビに関する研究をまとめたブログらしい。 Adminボタンを押してみるとURLが`
https://spotted-quoll.ctfcompetition.com/#err=user_not_found
となる。
HTMLを覗いてみるとiframeがあって、getCookieでCookieを生成していることが分かる。
Cookieを見ると文字の羅列が値になっているので、これをbase64でデコードしてみたらビンゴだった。
(dp1 S'python' p2 S'pickles' p3 sS'subtle' p4 S'hint' p5 sS'user' p6 Ns.
全くわからなかったのでGoogle先生に助けてもらい、PythonのPickle.dumpというメソッドの出力であることが分かった。
これを元に以下のようなコードを書いて、出力をbase64でエンコードした。
import pickle f = open('dump.txt', 'w') pickle.dump({'python': 'pickles', 'subtle': 'hint', 'user': 'admin'}, f) f.close()
エンコードした文字列でCookieを改竄してAdminにアクセスするとflagが手に入った。
Ernst Echidna(Web / 50 points)
サイトに登録してくれと言われる。
問題文にrobots.txtがヒントだよって書いてあったので見てみると/adminが記載されていた。試しにアクセスしてみるも管理者じゃないから見れないと言われる。
ユーザ登録をするとCookieが生成された。また、色々試していると、ユーザ登録の際にPasswordを未記入にしてもエラーにならないことに気がついた。
それにもかかわらずCookieは更新されているのでユーザ名だけで認証されているのかなと思い、ユーザ名をaとした場合のCookieの値をググってみる。
するとmd5のハッシュであることが判明。adminという文字列をmd5でハッシュ化してCookieを改竄、/adminにアクセスしたらflagが手に入った。
Purple Wombats(Web / 100 points)
CTF開催しててWebサイトのペネトレーションテストをやってる暇がないから代わりにやっておいて、ということらしい。 HTMLを見てみるとコメントがあった。
GitHubのこのリポジトリにアクセスしてみると、このWebサイトのソースと思われるファイル群があったのでcloneしてきた。
Pythonで書かれていて、簡単に見る感じだとGoogle App Engineを利用していることがわかった。
Pythonはほとんどわからないけど、これを見る限りメンテナンス中だからsessionを作成せずに問答無用でreturnさせている感じ。
もう少しじっくり見ていくと、
secret_key
が直書きされていた。
ググってみるとGoogle App Engineはこれを元にsessionとかを暗号化(?)しているらしい。
つまりこれを利用すればこのWebサイトで利用できるsessionを自由に作れるということなので、やってみた。
とはいえ、Google App Engineを使った時は一度もなかったので環境構築から始まって、結構時間を取られた。
先ほど見つけたメンテナンス用のreturn文をコメントアウトしてlocalhostでWebサイトにアクセスし、ユーザ登録をする。
するとCookieが生成されたのでそれで実際のWebサイトの方のCookieを作り、/flagsにアクセスすると認証されてflagが手に入った。
感想
前回参加したPlaidCTFでは問題を1問しか解けなかったけど、今回はかなり調子が良くて今までで一番問題を解けた。
ただ、解けそうな分野が極端に限られているのでもう少し他の分野にも手を出したい…