Hackers' Dream 参加しました。

後日レポートをアップする予定です。(本文そのものはブログには貼りません。念のため。)
問題は 4 問あり、そのうちの 3 問ではリバースエンジニアリングが必須です。8 日という長丁場なので、全問正解することは最低必須だと考えていました。そこで取り掛かったのが、ボーナスポイント。全部横並びならボーナスポイントで勝てるぐらいに揃えておこうとしました。
特に Web 問題のボーナス問題。

ボーナスポイント : (IE脆弱性を) さまざまなバージョンの IE で試せ

今回これで最高点を取るため、様々な環境を立ち上げて試しました。IE脆弱性というのは厳密に言えば mshtml.dll のバージョンに依存するため、違ったバージョンの mshtml.dll を「どうやって」集めるかがポイントでした。結局試したのはユニークなもので、次のバージョンのものでした。(バージョン辞書順)

  • 6.0.2600.0
  • 6.0.2800.1106
  • 6.0.2900.2180
  • 6.0.2900.3698
  • 6.0.2900.5969
  • 6.0.2900.6003
  • 6.0.2900.6036
  • 6.0.3790.0
  • 6.0.3790.630
  • 6.0.3790.1830
  • 6.0.3790.2643
  • 6.0.3790.3304
  • 6.0.3790.3959
  • 6.0.3790.4470
  • 6.0.3790.4772
  • 7.0.5730.13
  • 7.0.6000.16386
  • 7.0.6000.17080
  • 7.0.6000.17092
  • 7.0.6001.18000
  • 8.0.6001.18702
  • 8.0.6001.18939
  • 8.0.6001.18975

この 23 種類。この脆弱性特有の性質で、mshtml.dll のバージョンがほんの少し違うだけでかなり違う結果が得られるという事実に驚き、また感激。今回のコンテストは実在の脆弱性を扱う問題が幾つかあったので、実際の脆弱性が「何を」やっているかが垣間見れたという点が良かったと感じる。