SECCON 2014 オンライン予選 参加メモ
SECCON2014オンライン予選に1人で参加してみた。
レベルの高い問題はほとんど解けなかったので、自分用のメモ。
海外出張中で時間帯、PC、ネットワーク環境いずれも不十分なのが残念だったけど、
いずれにしても500〜800点程度だったんだろうなー。
SECCONに一緒参加できるような知り合いが欲しい。
このパケットを解析せよ
キャプチャデータをWiresharkで開くとFTPで通信していることが分かり、その中のファイルに以下のデータが出てくる。
RkxBR3tGN1AgMTUgTjA3IDUZQ1VSM30=
これをBASE64でデコードすると以下の回答を得る…が、受理されなかった。
FLAG{F7P 15 N07 5CUR3}
他の方の回答を見たら、以下のようになっているらしい。なぜzの大文字小文字に違いが…?腑に落ちない。
RkxBR3tGN1AgMTUgTjA3IDUzQ1VSM30=
FLAG{F7P 15 N07 53CUR3}
decode me
encoded.txtを開くと、最初にFRPPBA 2014と書いてある。
SECCON 2014と対応付けて考えると、アルファベットが13文字分ずれていることが分かる。
rot13/47であることは気付けたが、うまく変換できずに断念。
nkfで簡単にデコードできるらしい。
879,394bytes
879,394を16進にすると0d62bb、リトルエンディアンだとbb620d。
Filesystem001.binの中にリトルエンディアンbb620dを発見。
その近くにあった文字列からファイル名を推定してChrysanthemum.jpgでクリア。
重ねてみよう
GIFデータの画像を重ねあわせれば何か出ると推測。
gif画像をGIMPで開き、黒い部分を選択→削除(透明化)していった。
QRコードが浮かび上がるが、そのままでは認識できない。
よく見てみると、通常のQRコードと違って白黒が反転している。
色を反転させてQRコードを読むと、以下の解答を得る。
FLAG{Many dot makes a QR code}
あみだくじ
毎回答えが固定のあみだくじ。ただし短時間中に正解しなければならない。
実行ファイルを調べたらLinux 64bitバイナリで、実行環境の用意にまず手間取ってしまった。
最初は手入力でやっていたが、15番目辺りからプログラムを組んだ。
手抜きのプログラムを組んだら、予想以上に問題数が多くて終わらなかった。
組んだプログラムはシェルで、1〜8を総当りで試していくもの。
1問解くたびにそれまでの問題を全部やり直すことになるので時間がかかってしまう。
1〜8の計算を並列化すれば2倍程度には高速化されたはずだが、やはり時間的に厳しそう。