駄文 -SECCON2018に参加しただけ(Not Writeup)-
なぜこのタイトルかって? 延々とDefense flagを送る人になってたからね!(めっちゃ悲しい writeupはほかの人に任せます
ptr-yudai: SECCON 2018 国内決勝に参加しました - CTFするぞ
theoldmoon0602: SECCON国内大会 参加記 - ふるつき
yosiking: SECCON 2018 国内決勝 参加記 - yoshikingのがんばる日記
結果
5位でした (画像取っておくの忘れた...). 今まで招待チームで下位をさまよっていたことを思うとすごい順位を上げた. 全然貢献できてないという自覚はある.
問題とか
今回は問題数が少ない気がしたのとチームメンバーが「セキュリティ...???」って言ってたのが印象的だった.
なんとなくどの問題にも妨害余地がありそうな気もしたが見つかることはなかった.なかったのかもしれない.
宮島
こちらはAssembly Golfとか言って短いアセンブリを送ってDefense flagを書き込む問題だった. ptr-yudaiがすごく頑張ってAttack flagを取り続けていた問題.
天橋立
XSS HELL.
alert('XSS')
を設定したpayloadを入力したときに実行されるように組んで,誰にも発火させないようにする問題(?).
Attack flagがなくてDefense flagのみ,解かれていない問題のタイトルがDefense flagとして認識される.
payloadをハッシュ化して合致すれば発火って形式主流,というかそれしかなかったらしい. theoldmoon0602がやってくれました.flag更新はyoshikingが頑張ってくれた.
松島
ポーカーゲーム.
カードのシャッフルは実際にカジノで使われているかっこいいアレをアルゴリズムとして実行したそう. deckに10枚を乱数で選ぶが,ここで時間をシードにして1秒おきに変化させていたらしい.
Attack flag 1はフルハウス以上,Attack flag 2とDefense flagの投稿フォームは4カード以上の役を完成させると出てくる.
作問者が試験的に運用したときは全然でなかった4カードが本番ですごく出ていたらしい. フルハウスは言わずもがな.yoshikingがやってくれました.
ptr-yudaiが配布されていたdeckを生成する実行ファイルを解析していたけど,結局実行ファイルを無限ループさせて,4カードの時に別PCのブラウザでF5って体制に. 外部から与えられていたgame_idが乱数に関わっていなかったのでこの方法で突破.
ところで,4カード以上が作れる(= 内部ではじき出したmax_scoreが4カードの時と一致しない)ときは弾かれるらしくて困惑していたチームがあったらしい. 途中からルールにも追記が入っていた.
Defense flagの書き込みスクリプトを作って5分おきに動かしたり改行を32個送ったりするなどした. これが唯一の活動.
その他
その1
Defense flagが入らない事があって,観察してみるとブラウザを更新したら前のflagになるってことが分かった. どうやらサーバーからpushされるものとリクエストして得られるものが違うようだった. flagチェック20秒前くらいになると自動更新されたりなかったりしたたので,Flag自動取得コードを書いたtheoldmoon0602にお願いしてコードを書き換えてもらったので3回分くらいの失点で済んだ.
後程バグだったことが周知されて,その頃にはリクエストしてもちゃんとflagが表示されるようになっていた.
その2
開始って言われてしばらく開始されなかった問題. ほぼ全チームが手を上げたりして運営も慌てていた.
総合
俺よ,ちゃんと技術磨いて出直せ.
以上,駄文兼記録として.