実はこの土日にはISUCON5と同時にTrendMicro CTFのオンライン予選もやっていました。
こちらにもチーム竹田氏の以下の四人でメンバー登録して参加していました。
が、きひろちゃん以外はISUCONの方で体力をもっていかれていてあまり参加できなかったのが申し訳なかったです…きひろちゃんごめん…
わたしは、3問着手して、2問だけ答え出しました。
Click on the Different Color
ブラウザでアクセスすると、箱が幾つが含まれる画像が表示される。一箇所だけ違う色のがあるのでクリックすると次に進む。というページでした。最近SNSでも見かけたやつですね。
手でやっていては埒があかないので、Pythonで自動化していくと、最後にフラグが返ってきました。
下の動画を見るとおもしろいですが、最後の方は小さくて到底人間にはクリックできません笑
なので、答えは TMCTF{U must have R0807 3Y3s!} (You must have robot eyes!) でした!
Captcha
こちらはログインするとCaptchaが出てきて、連続で500回正解すると良い感じ。こちらも手でやっていては埒があかないので、Pythonで自動化しました。
画像からノイズを除去して、二値化。それからtesseract-ocrで文字列にして、簡単なチェックに通った場合のみ送信することで自動化できました。
ところが、大文字小文字や、数字の0とアルファベットのOを誤認識するなど、一部の文字を含む場合にはスキップするようにすると全然すすまなくて、学習させないとだめかなぁと思った時に、これはもしや、と、画像ファイルにアクセスしないようにして同じ答えを投げ続けるとどんどん点数が上がるじゃないですか!
ということで、脆弱性のあるCaptchaでした。というオチです。TMCTF{217dae3fd34cee799658d4552e37827f}
つまり、今年のSECCON決勝戦のこれといっしょですね!
OCRじゃなくて人間が学習するべきでした…
Calculate it
TCPで接続すると、次から次に四則演算の問題が出題される感じ。Pythonから接続してevalしたらOK。
だと思ってたのですが、途中からローマ数字や、英語表記とか出てきて眠気に負けて断念。
ローマ数字はネットで変換プログラムを見つけてきて対応したのですが、英語表記は次のようなのもでてきてパースが大変そうだったのであきらめました。
7 * 10 – 30 1 THOUSAND 2 HUNDRED 30 4 + 50 – 3 * 7 HUNDRED 20 5
これは後できひろちゃんが解きました。
まとめ
本当は9月に行われる予定だったのですが、問題サーバから問題が漏れた?ようで、一ヶ月延期になっちゃって…
ISUCONとかぶったので本腰を入れて解くことができなかったのが残念です。
SECCON運営メンバが作問してるだけあって、面白い問題がおおかったので本当はちゃんとときたかったです。
このチームでちゃんと解いてたら本戦いけたかな…来年に期待。