ふるつき

v(*'='*)v かに

SECCON FINAL Intercollegeでした

 

 insecureというチームで出場しました。18のチームがいた中で、15位でした。

競技

 Attack and Defenseという形式でした。各チームにサーバが割当てられ、そのサーバでサービスを運用します。それらのサービスにはセキュリティホールが存在しています。私達は、脆弱性を発見して、修正して、また発見した脆弱性を利用して他のチームのサーバに攻撃を仕掛けます。

Defense Point

 サービスを運用していると、時折、利用者が訪れます(SLAと言ったはず)。正しく(仕様に従って)運用できていれば、Defense Pointが得られます。Defense Pointは連続でサービスを稼働させるほどに増えます。

Attack Point

 他のチームのサービスの脆弱性を突くと、例えば顧客情報を入手できます(他にも、本来運営のみが見られるはずのデータにアクセスできることがあります)。そのようなデータを入手すると、Attack Pointとなります。Attackに成功すると、被害チームの総得点の3%が攻撃チームに移動します。

サービス

ブログ

 誰でも投稿できるようなブログを運営します。

keiba

 競馬でお金を稼ぐサービスです。馬券を買ったことがないので、使い方がわかりませんでした。

sbox2015

 サービスにアップロードしたスクリプトRubyPHPPython)の実行結果から得られた値を用いて、2048を解くサービスです。意味がわからん。おもに、他の問題を攻略するためのスクリプトを走らせるサービスでした。

流れ

 私のやったことを適当に書きます。

 とりあえず、keibaは自分で起動する必要があったので起動しました。nodejsで書かれていたのでnode app.jsとかそういうコマンドを打ちました。するとdevelopmentモードで起動したので「まずそうだぞ」と思って、productionモードで走らせる方法をぐぐりました。NODE_ENV=production node app.js。developmentだとエラーが見えるらしいのですが、エラーの起こし方もわからなかったしnodejsわからない(javascriptわからない)のでここに時間を割くのは失策だったかも。

 しばらくkeibaのソース眺めてました。わかる人にはSQLiがあることがわかるらしいのですが私にはわかりませんでした。

 競技時間の1/4(つまり一時間)が過ぎた頃、ptr-yudaiがブログのSQLiを発見したはずです。SQLiできると、ブログの管理パスワードがわかりました。管理者になると、SLAが残していったフラグを見ることができましたので、Attackしました。

 keibaに飽きた私はsboxを見てました。スクリプトが実行できることがわかったので、ブログの管理パスワードを抜くようなスクリプトを書きました。 またたく間にAttack Pointが増加して嬉しかったです。

 そしたら目をつけられてたくさん攻撃されました。Defenseはまるでだめだったので、一気にポイントを抜かれました。かなしみ。

 たくさん攻撃されて本当に辛かったので、サービスを止めました。

 競技が終わりました。だめだめでした。

反省

 Defenseできるようにならないとだめ。そのためには、ソースコードが読めないとだめ。

 サービスの概要をちゃんと把握しないとだめ。

 

懇親会など

 懇親会楽しかったです。企業や企業じゃないところの方に声を掛けていただいて、お話を聞いていました。こちらが高専生なので、バイトやインターンの話になりがちでした。

 プロ各位と少しだけおしゃべりしました。