第52話
「始まったら、まず私が見て、できそうなやつ割り振るから」
「全部できそうじゃなかったら?」
「それでも割り振るから」
「えー、ひど」
ゆあんと優が、AJSECの問題ページを開いたまま話している。ページ上ではカウントダウンが行われている。あと三分だ。
「あとちょいだー」
カウントダウンを見つめながら、里々が言った。
「桃ー。何か、それっぽいこと言ってよ」
ゆあんが優との話を止めて、声をかけた。
「え、どういうこと?」
「壮行会的な。気合い入れ的な」
「え、私が?」
「いちおう長じゃん」
「えー」
と言いながら、桃は立ち上がった。他の四人は自然とそちらを見る。
「えーと。特に用意してないんですけど。えー、そろそろ始まります。前に三人でAJSEC Juniorというのをやって、それはうまく上にはいけなかったんですが、今回はそれより難しいやつです。こっちも上位に入ると、うまくするとアメリカにいけるんですけど、でも、今回はそういうことは置いておいて、頑張るというよりまずは楽しくやりましょう。……こんなんでどう?」
二海と里々、優はぱちぱちと手を叩いた。しかしゆあんは、「うーん、もうちょっと闘争心が出るようなのを……」と注文をつける。
「じゃあゆあんがやってよ」
「やだ」
そうやってモニターから目を離しているすきに、カウントダウンが十秒を切っていた。
「うわ、やばい」
全員、パソコンに向かう。カウントダウンが終了し、ページをリロードし、問題を開く。
「よっしゃー、やろう!」
ゆあんが、楽しそうに声を上げた。
二海は、自分の割り当てのWebとNetworkの問題に目を通した。Networkはとにかくファイルをダウンロードしないと始まらないようなものが多い。Webから手をつけよう、と一問目のタブから開いた。
Webの一問目は、もうおなじみになったSQLインジェクションだった。ひっぱってきたフラグデータがハッシュ化されていたものの、ツールを使えば元の値を手に入れることができた。『welcome_to_ajsec』というフラグを送信して、五十点をゲットする。
「一問目解けた!」
そう言うと、
「おー」
「早!」
「えー、すごい。どんなの?」
と口々に反応が返ってきた。嬉しくて、頬がゆるんだ。
二海は、ダッシュボードを確認してみた。AJSEC Juniorと同じ見た目のダッシュボードが、今回も用意されているのだ。
KJCCは五十点で、十位だった。ただし同じ十位が三十チームくらいいる。ダッシュボードをスクロールすると、エントリーされているチームは二百以上いた。多いなあ、と思った。『五位までのチームにはSEC CON CTFの予選出場権が与えられます!』と書いてあるが、なかなか無謀な挑戦だった。
まあいいや、と二海はダッシュボードページを閉じた。今回は前回とは少し違う。順位を木にするのではなく、目の前の問題を楽しめばいいのだ。
そう決めたものの、Webの二問目から二海は急ブレーキを踏まされた。一問目がそれほど難しくなかったから、二問目もすっといけるのではないかと思ったけれど、そうではなかった。『合言葉を探せ!』という画像ロゴの下に『合言葉を入力するとフラグが表示されます』と書かれていて、テキストフォームがある。適当に『aaaa』と入力して『送信』ボタンを押すと『はずれ』と出る。この『合言葉』を突き止めるか、サーバーで照合の処理をしているならサーバーをハックすればいいという方針を立てて、二海は通信ログを調べた。しかし、サーバーと何か情報をやりとりしているような形跡はない。それならブラウザ上ですべてやっているのだろう、とHTMLソースからJavaScriptファイルへのリンクを読み取り、JavaScriptのソースコードを読んだ。
しかしそのJavaScriptに、『合言葉』に関する処理は見つからなかった。画像に関する処理をするためのもののようで、『合言葉』を入力したフォームの値を読み取るようなことをしていないのだ。何か見逃しているのか、と何度もなめるように読んだし、HTMLソースのほうで他のJavaScriptへのリンクはないかと探したが、無い。
ううん、と二海は考え込んだ。通信がされていないのだから、サーバーに値を送っているのでもない。ブラウザのツールを騙して、こっそり通信をしている? それは考えづらい。でもそうすると、どこで『合言葉』が合っているか間違っているかを確かめ、どこにフラグを保存しているのだろう。
「おーし、一問目終了」
そう言いながら、ゆあんがキーを叩いた。
「おー、やった……」
「ねえ、これ」
そこへ優が、ノートパソコンを持って画面を見せた。
「ここさ、この値をどっかに表示させればいいと思うんだけど、できないんだよね」
「えー、どれ……」
二人はコードを表示している画面を一緒に覗き込んだ。しばらくして、
「あー、ここ、ここ、バッファにstrcpyしてるじゃん」
「ここ?」
「ちょっと、gdbでここまで動かしてみてよ」
「待って……はい」
「ほら、バッファに割り当てられてるアドレスがここで、書き込み先がここでしょ? だから……」
「あー! わかった! バッファオーバーフローだ!」
「それよ。コピーしてるの入力値だから、ここに入れてやれば」
「オッケーわかった。次に取るの私だから」
「取って取って」
優は椅子を元の位置に戻し、ノートパソコンに向かってキーボードを叩いた。ややあって、
「オッケー! 取れたー!」
と、ガッツポーズとともに声が上がった。
「イエイ」
「イエーイ」
優は立ち上がり、近くにいた二海とゆあんとハイタッチした。
「やー、いいね。初めてで早速解いちゃうとは。天才かな?」
「まだ全然残ってるからはよやって」
「うるせー」
ゆあんと軽口をたたきながら、優は席に戻った。二海もモニターに目を戻す。少し気分が変わったから、何か解法が浮かぶといいなあと思ったのだが、だめだった。
二海は、部屋の奥、本棚の近くの椅子に座る桃に視線をやった。何かヒントになるようなもの、助けになるようなものがほしかった。しかし、今桃は自分の問題に集中している。声をかけるのはためらわれた。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます