第19話

 二問目のタイトルは『Login Again!』だった。問題ページは一問目とほとんど同じ、『Username』と『Password』の入力フォームと『Submit』ボタンという構成だった。念のためページソースを見てみたが、今度はコメントは入っていなかった。


(そりゃそうだよね……そしたら……)


 二海は改めて、ユーザー名欄に『test' or '1' = '1' --』を入力し、『Submit』ボタンを押した。『Login Successful!』と表示してあるページが現れた。今回こそSQLインジェクションの問題だったということだ。


 よし、と二海は軽く頷いたが、ページに書かれているのは『Login Successful!』だけだった。スクロールするほどの長さもないページだし、ソースも普通だった。


 おかしいな、と二海は頬杖をついた。今までにやったCTFの問題では、SQLインジェクションに成功してログインすると、ログイン後のページにフラグが書いてあった。それが今回はない。二海はまた画面の前で考え込んだ。


 いろいろためしてみて、そのいずれからもはかばかしい成果を得られなかった後、二海は問題一覧ページに戻り、もう一回『Login Again!』のリンクをクリックした。タイトルと点数、フラグの送信フォーム、それに問題ページへのリンクが張ってあるそのページになにかヒントが無いかと探した。そんな気はしていたがやはりだめで、二海はがっかりしながら問題ページへのリンクをもう一度クリックした。


 ログインフォームが現れるのかと思ったが、現れたのは『Login Successful!』の文字だった。一度ログインしたらもうそのままになるらしい。右上に『Logout』のリンクが小さくある。改めて最初からやり直してみよう、と二海はそのリンクの上にカーソルを持っていった。


(あ……)


 クリックをする寸前で、二海はその手を止めた。


 一度ログインしたら、ログアウトするまではそのまま。ふつうのWebサイトの動きだ。だが、その動きを実現するのは手間がかかる。サーバーとのやりとりに使うHTTPという仕組みは、前のやりとりの結果、つまりはその人がログインしたかどうかということを、次のやりとりまで引き継ぐ方法を持っていない。一回のやりとりはその一回で完結してしまうのだ。


 でも、現実のWebサイトでは、一回ログインすれば次のページを読み込んでもログインした状態のままでいられる。HTTPだとそれができないのにどうやって実現しているのかというと、『セッション』という仕組みを使う。サーバーが一回ログインを受け付けると、そのログインしたユーザーに番号をふる。この番号が『セッションID』だ。そしてサーバーはブラウザ側にこのセッションIDを渡し、ブラウザは『クッキー』というデータの保存場所にセッションIDを保存しておく。ログイン後に次のページを読み込む、つまりはもう一回サーバーにリクエストを送る時、ブラウザが自動的にクッキーからセッションIDを取り出してリクエストの中に混ぜ込む。サーバー側ではそれを受け取り、このセッションIDはどのユーザーに割り当てたものかを調べて、どのユーザーからきたリクエストなのかを判断することができる。……と『ネットワークの基礎がわかる』には書いてあった。そして、サーバーはセッションID以外にもいろいろな情報をブラウザに向けて送ることができるとも。


 じゃあ、と二海はデベロッパーツールを開け、クッキーの中身を確認した。思ったとおり、『flag』という項目がある。その値を送信すると、『You got 70pt!』とでかでか出てきた。二海はまた小さく何度か頷いた。なかなか順調ではないだろうか。そう思って時計を見ると、もう三時ちょっと前だ。地学の授業の二十分をやり過ごすのはものすごくたいへんなのに、こうやって問題を解いていると二時間もあっという間だ。それでも一旦身体を伸ばそうと、二海は立ち上がってぐうと腰をそらした。それから部屋を出て台所に向かい、自分のマグカップに氷を入れた。お茶がぬるくなってしまっているので、これで飲むつもりだった。


(あと、なにか……)


 冷蔵庫の中を見ると、大袋に入ったブロックチョコがあった。甘党の父親が買ってきたものだろう。それをいくつか掴んでリビングを出ようとすると、ちょうど母親が入ってきた。つばの長い帽子に古いエプロンという格好からすると、庭をいじっていたらしい。


「暑い、暑い。もう雑草ばっかりしっかり生えちゃって」


 母親は台所に向かい、コップに水を汲んでぐうっと飲んだ。それからやっとひとごこちがついたというふうで二海を振り返り、


「あ、二海、今日の夜ごはんお姉ちゃんも帰ってくるっていうから、どこか外にいこうかと思うんだけど、食べたいものある? 前行きたいって言ってたところにする? どこだっけ、ほら……」

「ん、私家にいるからいい! みんなで行って!」


 二海は母親の言葉を途中で切って、急いで階段をのぼった。お肉でもお寿司でもパエリアでもシャーベットでも、今日はどこにも行くわけにはいかない。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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