PortSwigger Web Security Academy の File Upload ラボ群を、日本語の美容EC文脈で再構成した教材です。プロフィール画像や商品画像のアップロード機能を悪用した Web シェル設置と RCE を扱います。

全5問予定 Lab 01 公開 シミュレータ完結

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

知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
File Upload の脆弱性
拡張子チェック回避、Content-Type / MIME の偽装、マジックバイトの偽装、ホワイトリスト・実行権限分離による正しい防御。
Phase 1 — 基礎
Practitioner · 主要パターン
01
プロフィール画像から Web シェルアップロード
Content-Type だけ検証していて拡張子は素通り。webshell.php をアップロードして HTTP 経由で RCE。
Practitioner
02
拡張子ホワイトリストの不備
.php は拒否されたが .phtml や .phar は通る。Apache の AddHandler 設定で実行される変種拡張子。
準備中
03
マジックバイト検証の回避(Polyglot ファイル)
getimagesize() でチェックしているが、JPEG ヘッダの後に PHP コードを連結した polyglot で素通り。
準備中
04
Race Condition による検証回避
一時保存→検証→削除のフローで、検証と削除の間にファイルにアクセスして実行する。
準備中
05
ZIP / TAR の解凍時 Path Traversal
アップロードされたアーカイブに ../../../etc/cron.d/x のようなパスエントリを含めて、解凍時に任意ファイルを書き込む。
準備中