第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でここまで動かしてみてよ」

「待って……はい」

「ほら、バッファに割り当てられてるアドレスがここで、書き込み先がここでしょ? だから……」

「あー! わかった! バッファオーバーフローだ!」

「それよ。コピーしてるの入力値だから、ここに入れてやれば」

「オッケーわかった。次に取るの私だから」

「取って取って」


 優は椅子を元の位置に戻し、ノートパソコンに向かってキーボードを叩いた。ややあって、


「オッケー! 取れたー!」


 と、ガッツポーズとともに声が上がった。


「イエイ」

「イエーイ」


 優は立ち上がり、近くにいた二海とゆあんとハイタッチした。


「やー、いいね。初めてで早速解いちゃうとは。天才かな?」

「まだ全然残ってるからはよやって」

「うるせー」


 ゆあんと軽口をたたきながら、優は席に戻った。二海もモニターに目を戻す。少し気分が変わったから、何か解法が浮かぶといいなあと思ったのだが、だめだった。


 二海は、部屋の奥、本棚の近くの椅子に座る桃に視線をやった。何かヒントになるようなもの、助けになるようなものがほしかった。しかし、今桃は自分の問題に集中している。声をかけるのはためらわれた。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る