0
0

More than 3 years have passed since last update.

SECCON CTF 2019 弐 (server2) writeup

Posted at

問題内容

  • サーバーは画像Xをもっている。Xは参加者に公開されない。
  • 640×400のアルファチャンネルを含まないPNG画像をサーバーにPOSTすると,あるアルゴリズムによってXと比較され,認識率(類似度)が返ってくる。アルゴリズムは参加者に公開されない。
  • 4時間ごとにStageが進み,アルゴリズムのパラメータが変更される。パラメータは,厳しく判定する方向に変更される。
  • 認識率が50%を超える画像をPOSTすると,Attack Flag 1を取得できる。
  • 認識率が60%を超える画像をPOSTすると,Attack Flag 2を取得できる。
  • 認識率が70%を超える画像をPOSTすると,Attack Flag 3を取得できる。
  • 認識率が45%を超える画像のうち,最も認識率が高い画像をPOSTしたチームに対し,Defence Pointが付与される。
  • アルゴリズムを推測し,認識率の高い画像をPOSTせよ。

Stage1

私は前年大会に出たわけではなかったが,事前の情報収集でSECCON 2018 国際決勝 Writeup - こんとろーるしーこんとろーるぶいを読んでいたので,前年大会でも似た問題が出されていることを知っていた。
そこで,上の記事を参考に(40,40,40)の単色画像を投げてみたところ,最高認識率89.85%を記録した。
その後,手動でいろいろ試したが,何をやっても逆に認識率が低下する結果となり,単色画像が一番良いという結論に至った。

Stage2

単色画像の認識率が低下したので,手動でいろいろ試すのを再開した。最高認識率は以下の画像で50.525%。
test.png

Stage3

Stage1,2でいろいろ試した知見を元に,画像をある程度の大きさのマスに分け,あるマスに色を付けてみて,認識率が上昇したら色を付けたままにし,下降したら色を取り消すという方針を立て,自動化した。しかし,競技終了までに認識率45%には届かず。最高認識率は以下の画像で21.275%。
test.png

その他

  • ptr-yudai氏は,この問題は前年大会の使い回しであると指摘している。ただし,上でリンクした記事とこの記事を読み比べれば分かるように,全く同じというわけではない。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0