Ruby_log

2016-02-28

SECCON 2015 intercollege 決勝大会

チームAquariumとして,SECCON2015 intercollege決勝大会に参加してきました.(SECCONについては http://2015.seccon.jp/)

結果は18チーム中10位でした.クイズ形式のCTFは何度か参加したことがあるが攻防型は初めてだったためにいい経験になったし,すごくおもしろかった.

記事の最後に他のチームメンバのブログへのリンクがあるのでそちらもどうぞ.

intercollege決勝のルール

サーバ攻防型で,各チームに1台サーバが与えられ,サーバ上のサービスを防衛したり,攻撃したりして得点する.

防御点は定期的に運営から稼働しているかどうかのチェックがかかり,稼働していると判断されれば防御点獲得(稼働しているという判断がどうされているのかについては不明)

攻撃点はほかチームのサーバ上にあるフラグスコアサーバ送信すると攻撃点がもらえる.攻撃点は攻撃対象のチームの防御点の3%とかだった気がする.

取り組み方?

ざっくり言うとチームの構成が1人ずば抜けてできる人とその他大勢(自分含め)だったので,できることを割り振ってやることを意識しました.

例えば防衛のための簡単なコードの修正や設定変更は自分がやったりほかの人に割り振ったりして,ずば抜けた人の手が空いた状態にして,得点とりを目指せるようにする

ハッカソンとか時間制限の有るイベントでいつもやってることなので特に打ち合わせなくそのあたりは自然にやってた感じ.

サーバ上の3つのサービス

開始前に3つサービスがあることは伝えられていた.ただ事前にわかっているのは数だけでどこでどういう形で動いているのか,どういう穴があるのかはもちろん自分たちで見つける必要がある.

vulnerable_blog

phpフレームワークで作られたっぽいブログサービス.管理ページにアクセスするための管理キーが`keycode`というファイルに平文で保存されており,全チーム共通だった.管理キーを使って管理者としてログインし,投稿されたブログ記事をみるとフラグが書いてあった.

開始して間もないころにこれを発見し,ほかチームの対策がまだな状態だったため,早々に攻撃点を得られた.

問い合わせフォームで送信された内容をDBに保存するような処理になっているが,受け取ったパラメータをそのままクエリにしているため,SQLインジェクションも可能であった.

普段Railsを書いていてMVCは見慣れていたために見る必要のある箇所だけにパッと当たりをつけてコードを読めたのはよかった.

sbox2015

最初さっぱりだったが,あとあとアップロードしたファイルをうまく実行してやるとフラグが表示されることがわかった.

対策としてアップロードされるファイルの内容に対してフィルタをかけて,フィルタに通ったものだけを保存するという処理を加えた.

が,この処理がどうもまずかったらしく,変更後防御点が入らなくなっていた.試行錯誤したが,どう直せば点が入るようになるのかわからなかったためこれについては途中で断念した.

keiba

開始からずっとこのサービスがダウンしていたことにチームの誰からも気づかれなかった可哀想な子….

他の2つはすでに公開されるディレクトリに配置されており,Apacheも動いていたため何もしなくてもサービスが稼働している状態だった.

keibaについてはホームディレクトリにnodejsで書かれたアプリケーションのコードがあるだけでどこでも動作はしていなかったらしい….

サービスが上がってないことに気づいてkeibaを調べたが起動するポートがわからなかったので,試しに何も指定せず開発時に使われる3000ポートで起動すると,防御点が入った(これでいいのか…w)

nodejsのコードを見慣れてないために読むのに結構時間がかかった.存在していた穴としてはサインアップかログインの箇所でSQLインジェクションが可能とかだったはず(よく覚えていない)

全体を通しての反省点

まずkeibaのサービスが上がってないことに気づくのがかなりおくれたのがすごく痛い.これが最初から上がってれば防御点がかなり変わったはず.

次に大きいの,dbをdropされて認証の情報まで落ちていたことに気づかず,dumpから戻そうとしたが戻せずに試行錯誤していたこと.これのおかげでblogとkeibaが止まっていたのでこれも防御点のロス.

どちらにしてももうちょっとしっかり確認できればよかった.とくにDBの方は絶対気づけたはずなのに焦って気づけなかったのが痛い.

チームメンバのブログ記事

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hi_igu/20160228/1456664700
Connection: close