第7話 機密情報漏洩
バランスブレイカーな武器を生み出し、まさにチートなレベリングが完了して、マヤは多くの武器や防具が取り扱えるようになった。
それにあわせて、LVに見合った装備についても整えることに成功した。
残念ながらバランスブレイカーな武器は使えなくなったものの、これで当面のクエスト実施や移動等で困ることはないだろう。
「魔王討伐とは言っても、この辺りじゃ全然魔王の情報がないのよね。
そもそも、魔族の情報ですら聞いたことないし!」
魔王は、風の噂では遥か南西に位置する『グレートクレパス』を越えた先で復活したと噂されている。
グレートクレパスとは、名前の通り地表を分断する巨大な亀裂のことで、空を飛ぶことのできない人族がこれを越えてその先に向かうことは不可能だと言われている。
それでも、過去にグレートクレパスを越えてその先を目指した者もいるらしいが、誰一人として戻ったという話がなく謎に包まれている。
もっとも、今マヤのいるノースランドはグレートクレパスから大きく離れている。これ以上の情報が必要ならばこちらから出向く必要がありそうだ。
ちなみに、マヤとノースランドで関わった人物は少ないが、目立つ行動がなかった訳ではない。黒髪、黒目が珍しいこともあるが、『ポーション爆買い少女』とか『一匹狼のマヤ』など、二つ名で認識されるくらいには目立っていたのだ。
そして、街への滞在時間は少ないが短期間でレベル2から30へ上がっている。
不審に思われてもおかしくないので、そろそろ活動拠点を移すべきだろう。
「さっさと魔王退治しないと元の世界に帰れないから、先に進みましょう。
とりあえず帝都を目指すのがよさそうかしら?」
この世界にマヤを送り込んだ神様の思惑としては、じっくりクエストをこなし真面目に努力をすることを期待しているのだろう。しかし、マヤは 2年以内の魔王討伐を目標にしたのだ。あまりのんびりもしていられない。
魔王を退治するとなれば、今以上にレベルアップすることも必要だが、一緒に戦う仲間も必須だろう。
優秀なメンバーに仲間に加わってもらうためには、優秀な人材が集まっている帝都に向かうと共に、自分自身の知名度を向上させる必要があるだろう。
のんびりとクエストをこなし情報収集をしていたのでは目標に間に合わない。
マヤはショートカットやバイパス、チートスキルを駆使してでも構わないので速やかに魔王討伐を目指す決意をして、帝都を目指し出発する。
――――
ノースランドの南側は高い山脈で囲まれており、ここを通過するのは現実的ではない。少々遠回りになるが東に迂回して進みトップオーバーの街を目指す。
その移動途中に、マヤは不自然な物音に気付き足を止める。少し先の森の中から激しい物音が聞こえてくる。物音のする辺りを見ると、森の中の小さな集落が魔物の群れに襲われているようだ。
「これは大変な状況のようね。装備を買い替えてからまだ戦ったことがないし、
腕慣らしを兼ねて魔物退治を手伝ってあげるとしましょうか!」
マヤは状況を見かねて、集落の魔物退治を手伝うこととする。
今まで使っていたバランスブレイカーな武器と比較してしまうと圧倒的に弱いが、レベル30の身体能力と新調した装備の効果はかなりよさそうだ。
以前と戦闘スタイルはだいぶ異なるものの、マヤの協力で無事魔物退治に成功した。
「本当にありがとうございます。私は商人のビートと申します。
救援に駆けつけていただき、なんとお礼を申してよいのやら…」
そして、話が落ち着いてきたところでビートさんから一つの提案が。
「今はまだ本当に小さな集落なのですが、今後絶対に大きくしてみせます。
ぜひこの街の名前にあなたの名前の一部をいただけないでしょうか?」
あれですね。ドラ〇エⅢの商人の町で、名前を『ハン』にしておけば将来『ハンバークの街』になるイベントだ。
街の名前が『マヤ〇〇〇』になれば、マヤの知名度アップへの貢献は間違いない。
しかし、街として機能するほど成長するにはあと 10年はかかりそうな雰囲気だ。
もう少し即効性のある知名度アップ方法を考えたいところである。
――――
ビートさんから提案のあった街の名前の件だが、ビートさんへ口頭で名前を伝えるのではなく『ステータス』画面に重なる形で入力ダイアログが表示される。
素直に『マヤ』と入れたところ、確認ダイアログが表示されるようだ。
「『マヤ』この名前でよいですか?
【いいえ】【はい】」
いつもの興味がでて実験をしたくなった。とりあえず【いいえ】を選択する。
――――
「まずは軽くジャブで………『おっぱい』」
「この名前は使えません!ちがう名前を入れてください。」
どうやら、不適切な名前でNGワードにひっかかったようだ。では少し捻って…。
「なるほどね。じゃあ………『ウルトラマンコスモス』」
「この名前は使えません!ちがう名前を入れてください。」
これもNGワードにひっかかった。特定キーワードを含む部分一致についてもチェックしているようだ。もしかすると、これらの判定のためにブラックリストは RDBMS を使って実現しているのかもしれない。
ここから先は少しテクニカルに攻めてみる。
「えいっ『ぺぺぺぺぺぺぺぺぺぺぺぺぺぺ………ぺぺぺぺぺぺぺぺぺぺぺぺぺ』」
入力ダイアログに、画面いっぱいになる限界の長さで『ぺ』を入力する。
「『ぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ』この名前でよいですか?
【いいえ】【はい】」
32 文字で切り捨てられてしまった。ここからバッファオーバーフローさせてスタックを書きつぶしてリターンアドレスを書き換えられないかと思ったけど、さすがにそこまで無防備ということはないようだ。
――――
マヤは落ち着いて、システムの挙動について想像してみる。
動作から、ダイアログ入力処理完了後にブラックリストと照合してNGワードでないか判定していることが想像できる。
ということはもしもだ。照合処理に RDBMS を使っていて、さらに入力フィールド値のサニタイジングがされてないとしたら…。
そう、マヤは気づいてしまったのだ!
「えいっ『XXX'; SELECT * FROM ………』」
何回かの試行のあと、ついに成功する。キタコレ!!
「やったわ! ブラックリスト登録済のNGワードがずらずらと表示されているわ!」
入力ダイアログからSQLインジェクションをすることによって、元の SQL処理を中断して代わりにブラックリストの中身を表示させることに成功したのだ。
――――
何でこんなことをしたかというと、NGワードの中には登録させたくない不適切な語句の他に、重要なNPCキャラ名や重要アイテム名が含まれているからだ。
重要NPCなどと同じ名前を付けてしまうと混乱が生じるので、入力しても受け付けないようにしているのだろう。
逆に言うと、NGワードから不適切な語句を除外すると、この世界で重要な人物名や重要アイテム名が抽出できてしまうという寸法だ。
このリストがあれば、クエストを受ける際に優先すべき相手やアイテムが分かりやすくなる。
さらに言うと、今回知ることのできた名前で先んじてヒアリングをすることで、いくつかの『お使いクエスト』をバイパスすることができるのではと考えたのだ。
「相変わらずこの異世界のセキュリティは甘いわね。本当に大丈夫なのかしら?」
――――
教訓: 任意入力可能なフィールド値の長さチェック、サニタイジングを忘れないこと
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます