第21話
インターネットで調べたり、本を読み返したりして、空がだんだんオレンジ色に変わってきた頃、二海はようやく問題を解く筋道を見出すことができた。ふつうに画像をアップロードすると、サーバー側がアップロードされた画像を受け取って保存する。画像URLにアクセスがあったら、その保存してある場所から取り出して画像データを返す。
だがここで画像でなくプログラムのファイルをアップロードするとどうなるか。サーバーがそれを保存するところまでは同じだが、URLにアクセスがあった後、サーバーは画像データを返すのではなくそのプログラムを実行してしまう。だからフラグを探させたり表示させたりするコードを仕込んだプログラムファイルをアップすれば、うまくフラグを取ることができるはずだ。
「そしたら二海、行ってくるからね。鍵はかけてくけど、火とか気をつけてよ」
ドアが開けられ、母親が声をかけてきた。二海はプログラムのほうに心をとられていたので、「うん」と上の空で答えた。その後、玄関の扉に鍵がかけられる音が聞こえ、家の中が静かになった。
フラグがどこにあるかわからなかったため、まずどこにどんなファイルがあるのかを調べるところから始めなければいけない。今までにプログラムをいじったことはあるが、既にあるものをそのままコピー&ペーストしたり、一行二行をちょこちょこと付け加えただけなので、なかなかプログラミングははかどらなかった。手元で動かしてみると『Fatal error』と出てうまく動かなかったり、エラーが消えても思ったとおりの動きをしてくれなかったりする。思ったとおりのものをアップロードできたときには、すでに部屋の中がだいぶ暗くなっていた。二海はカーテンを閉め、部屋の電気をつけてから続きに向かった。
アップロードしたファイルのURLを開くと、『ctf.php DSC_0821.jpg DSC_0821_1.jpg flag _is_here.txt』とファイルの一覧が表示された。二海はURLを手で書き換えて、『flag _is_here.txt』にアクセスする。『nctf:{check_uploaded_files_type}』と表示され、それを入力すると百二十点のスコアを獲得できた。
「ふうー」
二海はチャットに『三つ目クリアした!』と書き込んだ。しばらくして、『やったね』と桃から返信がきた。
『二人とも夕ご飯たべた?疲れが出てくるし、きりのいいところでご飯食べたりお風呂入ったりしちゃってね』
桃は続けてそう書いてきた。確かに始まってからここまで六時間以上経っている。まだまだWebが一問、Networkが四問残っているのだから、ここらへんで一度リフレッシュしたほうがいいかもしれない。
『ありがと。ちょうどいいから、これからご飯食べてきちゃうね』
『いってらっしゃい』
片手を上げた絵文字付きのメッセージを読んで、二海は一旦ノートパソコンを閉じた。
二海は蛍光灯がしらじら明るいリビングのテーブルに、茶碗と平皿を運んだ。ご飯と目玉焼き、スライスしたスパムを焼いたもの、それに輪切りにしたトマト。一人の食卓にしては、皿の上はカラフルだった。
もう雨戸もしめてあるので、家の中はごく静かだった。二海は右手に箸を持ったまま左手でリモコンを取り、テレビをつけてみた。大分県の温泉をめぐる旅番組をやっていた。他のチャンネルも見てみたが、どれも似たり寄ったりだったので結局旅番組に戻り、食事を再開した。
二海は何を考えるでもなくぼんやりとご飯を食べていた。気づくとトマトだけ先に無くなっていて、スパムと目玉焼きが残っていた。トマトとスパムを一緒に食べるのが好きなのに。
とても疲れていた。身体が疲れているわけではなく、なんというか、脳が疲れていた。食べ終わってもしばらく立ち上がる気になれず、テレビの中で魚や野菜が料理されているのを眺めていた。しかし、ずっと座り込んでいるわけにもいかない。まだまだ問題は残っている。二海は思い切って椅子から立ち上がった。
しかし四問目にはだいぶ手こずった。シャワーも浴びてさっぱりリフレッシュしたはずなのに、手がかりが見い出せないのだ。タイトルは『Make your own pizza!』で、チーズの種類、具、ソースをそれぞれの選択肢から選ぶと、選んだピザの画像が表示されるというものだった。例えばcheeseにmozzarella、toppingにsalami、sauceにtomatoを選ぶと、赤い地に丸いサラミの乗ったピザの画像が出てくる。楽しいといえば楽しい問題だったが、解けるかどうかはまた別の話だった。三問目のように『ここをどうにかするのだろう』というとっかかりすら見つからない。
店から両親と姉が帰ってきたのを、二海は駐車場に入る車の音で知った。やがて玄関が開き、足音がする。
「ただいま。あ、二海もうお風呂入った?」
部屋に入ってきたのは母親だった。うん、と二海は腕組みをしたまま答える。母親は二海の後ろまで寄ってきた。
「ねえ、二海、それ何やってるの?」
「え? えーと、CTFっていうセキュリティコンテスト」
「それ……危ないやつじゃないの? よくニュースでやってるじゃない、ほら、不正アクセスとか……前に小学生の子がそういうことして補導されたってこともあったし」
恐らく姉から聞いたのだろう。そして『ハッキング』の部分だけ印象に残ったのに違いない。
「いや、そういうやつじゃないの、これは。えっと、そういう誰かに危害を加えるようなのじゃなくて、えーと……」二海はいい説明の仕方がないか考えたが、思いつかなかった。急いで『CTF』を検索して、出てきた『AJSEC』のページを開き、画面を母親に近づけた。
「読んでみて。書いてあるでしょう?」
母親はそれに目を通した。時おりタッチパッドを押して画面をスクロールする。後ろのほうまでいくと、こわばっていた母親の顔がやっとゆるんできた。
「そういうこと……あー、よかった。お母さん、お姉ちゃんから聞いてびっくりしちゃって」
「わかった?」
「何か内容まではねえ、あれだけど、でも何、ちゃんとした企業も後援してるみたいだし……二海は前からなにかやってたもんねえ」
緊張の解けた勢いでしゃべりたがる母親を部屋から出し、『お土産のプリンあるから食べない?』というのも『今ごはん食べたばっかだから後でもらう』と返した。このぶんだと父親にも変な伝わり方をしているだろうから、母親に先に誤解を解いてもらうほうがいい。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます