はじめに
IPA のサイトを眺めていたら AppGoat という学習ツールを見つけました。勉強のために触ってみます。
改訂履歴
- 2026/03/28 : 初版公開。
本文
1. ダウンロード方法
利用申請後、メールアドレスにダウンロードの詳細が送信されます。
2. AppGoat で学べる内容
全部で 12 種類の脆弱性を実習形式で学べるようです。実際に学習してみたので、各項目のハイライトだけ記事にまとめていきます。
2-01. クロスサイト・スクリプティング (XSS)
URL にスクリプトを仕込むことで、サイトの表示を変えることができます。
2-02. SQL インジェクション
入力欄に SQL を入れることで、ログインできてしまいました。
2-03. クロスサイト・リクエスト・フォージェリ (CSRF)
ログイン中に、別のブラウザからパスワードの変更ができてしまいました。
2-04. ディレクトリ・トラバーサル
URL に ../ を含めることで、見れちゃダメなファイルを見れました。
2-05. OS コマンド・インジェクション
変更後ファイル名のテキストボックスに OS コマンドを入れると、C ドライブの中身が見れちゃいました。
2-06. セッション管理の不備
手順が複雑なので細かい説明は省きますが、セッション ID の固定化攻撃を演習できます。
2-07. 認証制御や認可制御の欠落
URL の user_no の値を変えるだけで、他人の情報が覗けてしまいました。
2-08. HTTP ヘッダ・インジェクション
Cookie を改ざんできました。
2-09. バッファオーバーフロー
AppGoat は PHP 製のため、疑似的に挙動を再現しているようです。
2-10. クリックジャッキング
少しずれちゃってますが、罠ページの上に、ログイン中のウェブサイトが透明に重ねられているイメージを確認できます。
2-11. メールヘッダ・インジェクション
piyo@piyo.com を注入しました。
2-12. その他の脆弱性 (システム情報漏えい等)
詳細なエラーメッセージやデバッグモードの起動から、内部のシステム情報を漏洩させることができました。
おわりに
基礎学習として Web セキュリティの古典的な脆弱性を学ぶのに、良いツールだと思いました。ひとつずつちゃんと進めていくと、余裕で数時間はかかります。僕は休日が丸々つぶれちゃいました ![]()