SECCON Beginners2017 東京に行ってきた感想

f:id:Owatank:20171009134445p:plain

滅多に人が来ないこのブログのアクセス数が1000超えてた。あったけえ・・・
ベリベリサンクスヾ(≧∀≦)ノ

タイトル通りctf4bの東京会場行ってきた。去年の2月くらいにCicada3301という話をネットで読んですごいワクワクして謎解きみたいで面白そうと思い、その後で似たような感じのCTFというものを知った。

機械学習の方の勉強を優先していたのでCTFの勉強に時間は取れてなくて初心者向けの講義受けて見たいと申し込みしたら当選してびびった。

内容としては最初にセキュリティに関しての倫理の話から始まってWeb、フォレンジックリバースエンジニアリングの講義があった。

Web

検証ツールを使ったソースコードから手掛かりを探す方法や脆弱性の種類についての説明があった。
Request/Response Headerにも手掛かりがあるとは知らなかった。
あとはSQLインジェクションだったり、Directory Traversal、Local File Inclusionなどについても説明があった。
Djangoデバッグモードからソースコードを入手してflagを取得する解法もあったりしたり疑うことはたくさんあるな。。
典型的な脆弱性は覚えて置いて損はなさそう

フォレンジック

フォレンジックはpcapのログからflagを探したりファイルを復元してflagを入手したりする。CTFにおいてはフォレンジックの問題が解いてて一番楽しい。

pcapのログを見るのに必要なWiresharkの機能の使い方やデータの抽出方法の解説があった。バイナリについては与えられたファイルの拡張子が何であるか確認するfileコマンドや解析に便利なstrings,binwalkコマンドなどの説明があった。icatコマンドは知らなかったのでありがてえ
CSAWCTF2017のフォレンジックの問題でpcapの通信ログに謎のURLパラメータが大量にあるものがあった。その時は解けなかったがWriteupでは最初のパラメータにBMPの拡張子であるマジックナンバーが記述されていたらしく、パラメータを連結してBMPファイルを構築してflagを得るというものだった。
マジックナンバーは暗記しよう( ;∀;)

リバースエンジニアリング

実行可能なバイナリファイルの解析をする。アセンブリ言語を読めないと話にならないので、汎用、特殊レジスタの説明や代入や算術命令の説明があった。
callやjmp命令においてのスタックの構造把握が難しい。


講義が終わったあとはオリエンテーションというか1時間半くらいの問題を解く競争があった。結果は100人弱の中で27位だった。
時間が経つにつれて脳が停止してしまい、まともな思考ができなかった。終わった後すぐに別の200点問題の解き方がわかって悔しかった。。。
Writeupの解説を聞いて、自動で計算を処理して結果をPOSTするスクリプトを書く能力もいるのとバイナリ問題については処理の流れをしっかり掴むように読むことが大事なんだと思った。
Web問から行かずに、時間が経ってから正解者が多いWeb問を把握してそれから解いていく戦法使っている人がいて賢い。。。

まとめ

どの講義も全くの初心者の自分でもわかりやすい講義で最高だった。
リバースエンジニアリングについては他より覚えることが多い気がするので大変なのに1時間ちょっとで覚えるべきことだけ教えるといったスライドを作るのはめっちゃすごいと思った。
かっこいい原価割れしたステッカーも貰えるし、プロの人に懇親会で話を聞けるのでおすすめです。

まだ機械学習のするべき勉強は沢山あるけど、CTFの問題を解くのはすごく楽しいのでこっちもぼちぼちやってきたい。

隣の席で話しかけてくれた美人の女性さんと運営の皆さん、ありがとうございました。