PortSwigger Web Security Academy の Path Traversal ラボ群を、日本語の美容EC文脈で再構成した教材です。
ファイルアクセス機能の検証不備、エンコード回避、null バイト等の典型パターンを実習形式で扱います。

全5問 基本 / フィルタ回避 / エンコード / null バイト / prefix 仮想ファイルシステム

教育目的のシミュレータです。攻撃の挙動はブラウザ内の仮想ファイルシステムで完結し、外部システムへの影響はありません。

知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
ファイルシステムとパス
ファイルシステムの階層構造、絶対パスと相対パス、特殊な ..、Web サーバが触るファイル、攻撃者が読みたいファイル。
KB2
検証回避テクニックと防御
.. フィルタ回避、URL エンコード、二重エンコード、null バイト、絶対パス回避、ホワイトリスト・正規化による正しい防御。
Phase 1 — 基礎
Apprentice / Practitioner · Path Traversal の主要パターン
01
Path Traversal — 記事添付ファイルから秘密情報を漏洩
うつろい journal の添付ファイルダウンロード API が .. をフィルタしていない。基準ディレクトリの外側にあるアプリの設定ファイル、システムユーザ一覧、SSH 鍵を取得する。
Apprentice
02
単純な ../ フィルタの回避
サーバが入力から ../ を1度だけ置換削除する実装。....// 等の二重表現で素通り。
Practitioner
03
URL エンコード回避
フィルタは生の ../ しか見ていない。%2e%2e%2f でエンコードして送ると素通り。
Practitioner
04
拡張子チェックの回避(null バイト)
サーバが「末尾が .pdf であること」を要求するが、null バイトでファイル名を切れる古典攻撃。
Practitioner
05
prefix チェックの不備 — 末尾スラッシュ忘れ
サーバが realpath 後に基準ディレクトリの prefix チェックをするが、末尾区切り文字を忘れて prefix 一致で兄弟ディレクトリが素通り。
Practitioner