「Web 脆弱性マスター」は、安全でない入力処理がどのように悪用可能な Web アプリケーションの欠陥になるかを学ぶ、初心者向けのガイド付きコースです。8 つのハンズオンラボで、意図的に脆弱な PHP アプリケーションを Docker で実行し、その動作とソースコードの一部を調べ、Firefox または端末からテストします。
扱う攻撃経路は、データベースクエリに対する SQL インジェクション、ローカルおよびリモートファイルインクルージョン、反射型クロスサイトスクリプティング、安全でないファイルアップロード、OS コマンドインジェクション、PHP コードインジェクションです。各演習では、脆弱なコーディングパターンを、認証回避、データ抽出、スクリプト実行、ファイルアクセス、Web シェルといった確認可能な結果に結び付けます。
学習内容
このコースを修了すると、次のことができるようになります。
- Docker で意図的に脆弱なアプリケーションを起動し、Firefox、URL パラメータ、フォーム、Hackbar を通じて操作する
- エラーと真偽条件のテストで SQL インジェクションを検出し、数値と文字列のコンテキストを区別してクエリの列数を特定する
UNION SELECTとinformation_schemaで MySQL データベースの構造を調べ、データを取得し、安全でないログインクエリを回避する- 静的な PHP ファイルインクルージョンとユーザー制御のものを区別し、管理されたペイロードでローカルまたはリモートインクルージョンを確認する
- 反射型 XSS ペイロードを作成し、別の要素やイベントハンドラーの形式で単純な大文字・小文字依存フィルターを回避する
- ファイルアップロードの検証を調べ、PHP テストページやコマンドシェルをアップロードし、任意課題として拡張子による回避を試す
- OS コマンドに渡される安全でない入力を悪用し、追加コマンドを実行してラボ内限定のリバースシェルを確立する
- PHP の
eval()に渡される文字列から抜け出し、関数呼び出し、サーバーファイルの読み取り、新規ファイルの書き込み、簡単な Web シェル作成を行う
このコースの対象者
このコースは、脆弱な PHP コードと動作する概念実証ペイロードの関係をガイド付きで学びたい、Web セキュリティテスター志望者、開発者、CTF 学習者、サイバーセキュリティ初学者を対象としています。本格的なインターセプトプロキシの手順に進む前に、ブラウザでの実験と URL の直接変更から始めたい方に適しています。
前提知識: Linux 端末の基本操作と、URL、クエリパラメータ、HTML フォーム、単純な Web リクエストに関する知識を推奨します。PHP と SQL の初歩を理解しているとソースコードの説明を追いやすくなりますが、ラボでは登場時に必要な構文を説明します。
学習環境: ラボでは、Firefox、端末、Docker、ローカルの脆弱な Web アプリケーション、提供された Hackbar 拡張ファイルを備えた、隔離された LabEx のグラフィカル Linux 環境を使用します。複数の演習で公開 Docker イメージを取得し、リモートファイルインクルージョンの実演では公開された PentesterLab ペイロードを 1 つ参照します。第三者アカウントはコースで要求されません。
よくある質問
Burp Suite などのインターセプトプロキシは必要ですか?
いいえ。演習では Firefox、URL やフォームへの直接入力、ブラウザ開発者ツール、Hackbar、端末コマンドを使います。Burp Suite で生の HTTP 通信を傍受・変更する作業は対象外です。
脆弱なアプリケーションはすべてローカルでホストされますか?
アプリケーション自体は、ラボ内のローカル Docker コンテナで実行します。セットアップコマンドはコンテナレジストリから公開イメージを取得し、リモートファイルインクルージョン演習は公開ホストされた実演用ペイロードを読み込むため、そのレッスンは完全なオフラインではありません。
ここでいうコマンドインジェクションとコードインジェクションの違いは何ですか?
コマンドインジェクションのラボでは、信頼できない入力をシステムコマンドに組み込み、追加の OS コマンドが実行されることを示します。コードインジェクションのラボでは、eval() に渡される PHP 文字列に入力が入り、注入した PHP 関数でファイルを読み書きして Web シェルを作成します。
すべての脆弱性の修正方法も学べますか?
安全でないパターンを説明し、拡張子、MIME タイプ、サイズの検証といった確認方法も紹介しますが、ハンズオンの中心は脆弱性利用です。安全なクエリのパラメータ化、体系的な出力エンコーディング、本番向けアップロード設計、完全な修正検証は追加学習が必要です。




