2月11~12日に開催された、SECCON CTF 2022に、xxpoxx、anko、Imperi、moyashi_senpaiの4人で参加してきました。
結果は7位/12チームと悔しいものになってしまいましたが、様々な経験が得られ、非常に有意義な時間となりました。
この記事は、その参加記となります。
1日目
競技開始前
朝6時に目を覚まします。ねむい。
9時30分から受付開始だったのですが、9時に会場のある浅草橋に到着します。
会場前で待機していると、traP OBで、TSGで国際決勝に参加するmikitさんに会いました。わいわい。
9時30分になると受付が開始したので、会場に入場し、PCのセッティングをして競技開始を待ちます。
競技
詳しくはwriteupにて書きますが、1日目はreversingのwhiskyという問題を解いていました。少し沼ってしまい、チームメイトに助けてもらいながら、1日目終了の少し前になんとか通すことができました。
チームとしてはなかなか振るわず、10位で終了となりました。
1日目競技終了後
Airbnbで予約していた宿に向かいます。すぐに問題を解きたかったのですが、バーガーキングにて夜ご飯を食べました。
宿に戻ると、各々問題を解いていました。webやcryptoの問題が解けたようで非常に盛り上がっていましたが、revは解くことができませんでした。
25時くらいになり、5時くらいに起きるつもりで寝ましたが、起きたら8時になっていました...
2日目
競技開始前
会場に着くと再びPCのセッティングをしました。Jeopardyでは解ける問題がなくなってきていたおり、2日目はKing of the Hill(KoH)で点を稼ぐというチームの戦略になったため、KoH要員として待機します。
競技
これも詳しくはwriteupにて記述します。
KoHの1問目はサーバー上で生成された配列をクエリ形式で当てるというものでした。1問目をチームと相談し、山登り法を用いることで解けるということになり、†競技プログラマー†のmoyashiが実装を行い、提出したところ、比較的良い点を取り続けることができました。2問目はmoyashiが考察も実装も行い、なんと最速で満点を得ることができました。
3問目以降はcryptoの要素が強くなってきたため、moyashiとankoが担当し、自分はreversingの残りの問題及びKoHのもう1問に注力することにしました。
KoHのもう1問は、バイナリが渡され、それに近いバイナリを吐くソースコードを提出し、その近さを競うというものでした。様々な言語で行われたため、自分は馴染みのあるGoと、時間があったためにPython及びwasmも目を通しました。Goに関してはソースコードの少しの違いがバイナリ上では大きな差となってしまうため、うまく点数を得ることができませんでした。wasmでは、自分が初期の点を取るために適当に提出したemccのサンプルコードが2位の成績を取り続け(!?)、謎の点数を得ることができました。
reversingについては残りの2問がかなり難しく、通すことができませんでした。
競技中に提供されたお昼のお弁当がめちゃくちゃ美味しかったです。
結果発表
最終結果を見て順位が7位であることは分かっていたので、悔しい気持ちと共に結果発表を見ていました。入賞した皆さん、おめでとうございます!
懇親会
🍣を少し食べました。うまい!
ptr-yudaiさんやArkさん、keymoonさん、TSGの皆さん、さらにDouble Lariatの皆さんなどとCTFについていろいろ話すことができて非常に面白く、ためになりました。この懇親会のおかげで、CTFのモチベーションが爆上がりしました。話してくださった皆さん、ありがとうございました。
打ち上げ
肉を焼きました。酒も飲んで最高!なお、チームメンバーのmoyashiは翌日が卒論発表でした。
感想
結果は悔しいものとなってしまいましたが、問題は非常に面白く、また懇親会などでの交流によりCTFへのモチベーションが高まり、非常に有意義な大会となりました。
運営の皆さん、ありがとうございました!