初学者でも安心して学べるWebセキュリティの学習環境
- OWASP WebGoat -
本記事では、OWASP WebGoatの特徴からインストール方法、実際の使い方まで、初学者でも迷わないように丁寧に解説しています。
さらに、日本語化や学習効率を最大限に高めるためのヒントなど、実用的な手順もカバー。ぜひ最後までご覧ください。
OWASP WebGoatとは
OWASP WebGoatは、Webセキュリティの学習のために脆弱性を意図的に組み込んだWebアプリケーションです。
WebGoatには、SQLインジェクションやクロスサイトスクリプティング(XSS)、アクセス制御の不備など、主要な脆弱性を題材とした課題が用意されています。ユーザーは実際に手を動かしながら課題に取り組むことで、セキュリティに関する実践的なスキルを習得できます。
OWASP WebGoatは、OWASPによって提供され、現在もGitHub上でメンテナンスされています。
※OWASP:Open Web Application Security Project
リリース履歴
| リリース日 | バージョン |
|---|---|
| 2025年3月12日 | 2025.3 |
| 2025年3月3日 | 2025.2 |
| 2025年3月2日 | 2025.1 |
| 2023年12月5日 | 2023.8 |
| 2023年11月24日 | 2023.5 |
| 2023年2月17日 | 2023.4 |
| 2023年1月6日 | 2023.3 |
| 2023年1月6日 | 2023.2 |
| 2021年9月5日 | 8.2.2 |
| 2021年7月30日 | 8.2.1 |
| 2021年7月26日 | 8.2.0 |
| 2020年5月23日 | 8.1.0 |
| 2016年11月19日 | 7.1 |
| 2016年2月2日 | 7.0.1 |
WebGoat以外のトレーニング環境
WebGoatのように意図的に脆弱性を組み込んだ学習用のアプリケーションは〝やられアプリ〟と呼ばれます。代表的なものとして、WebGoatのほか、Damn Vulnerable Web Application(DVWA)、OWASP Juice Shop、Metasploitable2などが挙げられます。
詳しくは、下記の記事をご覧ください。

注意事項
WARNING 1: While running this program your machine will be extremely vulnerable to attack. You should disconnect from the Internet while using this program. WebGoat’s default configuration binds to localhost to minimize the exposure.
WebGoat公式サイト(https://owasp.org/www-project-webgoat/)から引用
WARNING 2: This program is for educational purposes only. If you attempt these techniques without authorization, you are very likely to get caught. If you are caught engaging in unauthorized hacking, most companies will fire you. Claiming that you were doing security research will not work as that is the first thing that all hackers claim.
WARNING 1:セキュリティ上の注意事項
WebGoatは意図的に脆弱性を含んでいるため、インターネットに公開された環境や業務システム上での実行は情報漏洩や不正アクセスのリスクがあります。必ず外部からアクセスできないローカル環境(または閉じたネットワーク)で使用してください。
本記事では、VirtualBoxを用いてWindows上に仮想環境を構築し、ネットワークアダプターにホストオンリーアダプターを使用することで、外部との通信を遮断しています。
各ネットワークアダプターの違いは、VirtualBox公式ドキュメント:Table 6.1. Overview of Networking Modes をご覧ください。
WARNING 2:倫理・法的な注意事項
WebGoatで学んだセキュリティ技術を、許可なく第三者のシステムに対して使うことは厳禁です。たとえ学習目的でも、許可なく第三者システムに対して使用した場合、サイバー攻撃とみなされる可能性があります。
OWASP WebGoatの特徴
- Webセキュリティの学習環境
- 手を動かして学べるトレーニング形式
- JavaベースのWebアプリケーション
- 充実したヒントと解説機能
- インストールが簡単
- オープンソース・無料
Webセキュリティの学習環境
WebGoatは、OWASP(Open Web Application Security Project)が公式に提供する脆弱性学習用のWebアプリケーションです。
OWASPは世界規模で活動する非営利組織であり、Webアプリケーションのセキュリティ向上を目的として多数のプロジェクトを推進しています。
OWASP Top 10に準拠したトレーニング環境となっており、主要な脆弱性カテゴリを幅広くカバーしています。
- Broken Access Control(アクセス制御の不備)
- Cryptographic Failures(暗号化の失敗)
- Injection(インジェクション)
- Security Misconfiguration(セキュリティの設定ミス)
- Vuln & Outdated Components(脆弱で古くなったコンポーネント)
- Identity & Auth Failure(識別と認証の失敗)
- Software & Data Integrity(ソフトウェアとデータの整合性)
- Security Logging Failures(セキュリティログの失敗)
- Server-side Request Forgery(サーバーサイドリクエストフォージェリ)
手を動かして学べるトレーニング形式
座学中心の教材とは異なり、実際に手を動かして学ぶことを前提に設計されています。各レッスンでは、Webアプリケーションに存在する脆弱性を体験しながら学習する形式となっており、パラメータ入力を試したり、HTTPリクエストを分析したりすることで理解が深まります。
JavaベースのWebアプリケーション
JavaおよびSpring Bootをベースに構築されており、実際の企業システムに近いアーキテクチャを持っています。Javaアプリケーション特有の脆弱性やフレームワーク依存の挙動を確認できる点は大きなメリットです。
充実したヒントと解説機能
各レッスンには解説やヒントが用意されており、理解に詰まった際に学習を継続しやすい設計になっています。ヒントは単なる答えではなく、概念的な説明や入力例、分析の方向性などが含まれており、理解を深めながら解答にたどり着けるよう工夫されています。
インストールが簡単
WebGoatの公式Dockerイメージが提供されており、数行のコマンドで立ち上げられることから、環境構築に不慣れなユーザーでも短時間で学習を開始できます。
また、WebGoatの仮想アプライアンスがVulnHubで配布されており、VirtualBox上に仮想マシンを構築することもできます。
オープンソース・無料
WebGoatはOWASPによるオープンソースプロジェクトであり、無料で利用できます。現在もGitHub上でメンテナンスされており、常に最新の環境で学習することができます。
OWASP WebGoatのインストール
WebGoatの代表的なインストール方法(実行方法)には、以下の4つがあります。
- Dockerイメージを使用して、コンテナ環境で実行する
- Javaアーカイブファイル(JAR)またはソースコードを使用して、Javaアプリケーション環境を構築する
- VulnHubで配布している仮想マシンをVirtualBoxにインポートする
- OWASP BWAに含まれるWebGoatを使用する
この記事では、a.Dockerを使用とc.VulnHubからダウンロードについて解説します。
「b.Javaアーカイブファイルまたはソースコードを使用する方法」は、依存関係の対応内容がインストール環境によって異なるため、本記事では割愛します。
また、「d.OWASP BWAのインストール方法」については、別記事「OWASP BWAインストール完全ガイド」で解説しています。
WebGoatを含む30種類以上の脆弱なWebアプリケーションを1台の仮想マシンに搭載したトレーニング環境。
- メリット:OWASP BWAの仮想マシンを1台構築するだけで、30以上のWebアプリケーションを試すことができる。
- デメリット:OWASP BWAに搭載されているWebGoatのバージョンは古い(v5.4)。
Docker環境にインストール
Dockerを使用することで、システム環境に影響を与えることなく、WebGoatを迅速かつ安全にセットアップできます。
ここでは、Ubuntuを前提にDocker環境へのインストール手順を解説します。
- Ubuntu 24.04.3 LTS(192.168.10.102)
- Docker version 29.0.2
※Ubuntuは、VirtualBox上で仮想マシンとして稼働しています。ネットワークアダプターは、ホストオンリーアダプターを使用しています。
まだ、UbuntuにDocker環境を構築していない場合は、「UbuntuにDockerをインストールする」をご覧ください。
WebGoatコンテナの起動
$ sudo docker run --name webgoat -it -p 8080:8080 -p 9090:9090 webgoat/webgoatdocker runコマンドを実行して、WebGoatのDockerコンテナを起動します。
-i:標準入力(STDIN)を開いたままにする-t:疑似ターミナル(tty)を割り当てる--name webgoat:コンテナ名をwebgoatに指定(コンテナを再利用するため)-p 8080:8080:WebGoatのポート8080をホストのポート8080に割り当て-p 9090:9090:WebWolfのポート9090をホストのポート9090に割り当てwebgoat/webgoat:公式のWebGoat Dockerイメージ
-itオプションを指定すると、対話モードでコンテナが起動します。ターミナル上でログを確認でき、Ctrl+Cでコンテナを停止することができます。
コンテナが起動したら、ブラウザでWebGoatのトップページを開きます。
- Dockerホストから接続する場合、
http://127.0.0.1:8080/WebGoat/またはhttp://localhost:8080/WebGoat/ - 他のマシンから接続する場合、
http://<DockerホストのIPアドレス>:8080/WebGoat/

停止したコンテナを再開する
$ sudo docker start -ia webgoatdocker startコマンドを実行することで、前回の状態を保持したままWebGoatを再開できます。
-i:コンテナの標準入力(STDIN)に接続する-a:標準出力/標準エラーに接続し、シグナルも転送するwebgoat:コンテナ名
対話モードでコンテナを起動するため、-iaオプションを指定しています。
VulnHub配布の仮想マシンをインストール
Docker環境を利用しない場合、VulnHubが提供する仮想アプライアンス(OVA形式)を使用し、仮想環境(VirtualBox)上にWebGoatの仮想マシンを構築します。
- Windows 10
- Oracle VirtualBox 7.1
※ネットワークアダプターは、ホストオンリーアダプターを使用しています。
初めてVulnHubを利用する方は、VulnHub 徹底入門もあわせてご覧ください。ネットワーク設定など仮想マシンの構築手順を〝スクリーンショット付き〟で詳しく解説しています。
WebGoatの仮想アプライアンスをダウンロード
ブラウザでVulnHubにアクセスし、WebGoatと検索して、仮想アプライアンス(.ova形式)をダウンロードします。

ダウンロードサイトのリンクが切れているので、ミラーサイトからダウンロードします。
セットアップに必要な情報を確認しておきます。
| URL | http://<IPアドレス>:8000/WebGoat/ |
| 認証情報 | user:webgoat pass:webgoat |
| ネットワーク情報 | DHCPサービス:有効 IPアドレス:自動割り当て |
仮想アプライアンスをインポート
VirtualBoxを起動し、ファイル>仮想アプライアンスのインポートからOVAファイルを選択します。

初期設定のままで問題ありませんが、必要に応じて設定を変更して下さい。

本記事の検証環境の場合
| 仮想マシンの基本フォルダー | (環境にあわせて指定) |
| MACアドレスのポリシー | すべてのネットワークアダプターでMACアドレスを生成 |
設定終了後、完了ボタンを押下すると、インポート処理が開始されます。

ホストオンリーアダプターを変更
インポート後、仮想マシンのネットワーク設定を確認します。

ホストオンリーアダプターはデフォルトでvboxnet0が設定されていますが、ご使用の環境に合わせてアダプターを設定してください。

DHCPサーバーの有効化
前述の通り、WebGoatの仮想マシンはDHCPサーバーを使用するため、VirtualBoxのDHCPサーバーを有効にします。

仮想マシンを起動
設定が完了したら、仮想マシンを起動します。

新規ウィンドウが立ち上がり、ブートメッセージが表示されます。

仮想マシンが正常に起動すると、ログインプロンプトが表示されます。

仮想マシンのIPアドレスを確認
稼働マシンにwebgoat/webgoatでログインして、IPアドレスを確認します。
webgoat@webgoat:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:b0:f9:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.203/24 brd 192.168.10.255 scope global dynamic enp0s3
valid_lft 584sec preferred_lft 584sec
inet6 fe80::a00:27ff:feb0:f9d2/64 scope link
valid_lft forever preferred_lft forever本記事の検証環境の場合、仮想マシンのIPアドレスは192.168.10.203です。
ブラウザからWebGoatにアクセス
別の仮想マシン、またはホストOSのブラウザからhttp://<上記で確認したIPアドレス>:8000/WebGoat/を開きます。(本記事の場合、http://192.168.10.203:8000/WebGoat/)

グラフィックコントローラーの警告が表示されるなど、VulnHubからダウンロードした仮想マシンのセットアップに困ったら、下記の記事をご覧ください。画像付きで丁寧に解説しています。

WebGoatの使い方
このセクションでは、Kali LinuxからDocker上に構築したWebGoatにアクセスして学習を進めます。
- レッドチーム
- Kali Linux 2025.3
- Chromium 141
- ブルーチーム
- Ubuntu 24.04.3 LTS
- Docker 29.0.2
- OWASP WebGoat 2025.3
※Kali Linux、Ubuntuいずれも、Windows上で仮想マシンとして稼働しています。
WebGoatにテストユーザーを登録する
WebGoatを初めて利用する際は、ログイン画面から任意のテストユーザーを登録する必要があります。

ユーザー登録が完了すると、自動的にログイン状態となり、トレーニングの選択画面に遷移します。

WebGoatの日本語化
WebGoatは「英語」「ドイツ語」「フランス語」「オランダ語」に対応していますが、日本語には対応していません。(2025年11月26日時点)

しかし、ブラウザの翻訳機能を活用すると、日本語環境で効率的に学習を進めることができます。

WebGoatの学習にKali Linuxを使用する場合、下記の記事もご覧ください。
解き方に困ったら
本記事では課題の解答については割愛しております。各レッスンに掲載されている説明やヒントを参考に学習を進めてください。


