【OWASP WebGoat入門】インストール・使い方を徹底解説!

初学者でも安心して学べる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 ShopMetasploitable2などが挙げられます。

詳しくは、下記の記事をご覧ください。

注意事項

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.


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.

WebGoat公式サイト(https://owasp.org/www-project-webgoat/)から引用

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に準拠したトレーニング環境となっており、主要な脆弱性カテゴリを幅広くカバーしています。

WebGoatの学習メニュー
  • 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アプリケーション特有の脆弱性やフレームワーク依存の挙動を確認できる点は大きなメリットです。

Javaアプリケーションが多く使用されている金融・製造・公共などの業界に携わるエンジニアにとって、現場で役立つ知識を得られる環境と言えます。

充実したヒントと解説機能

各レッスンには解説やヒントが用意されており、理解に詰まった際に学習を継続しやすい設計になっています。ヒントは単なる答えではなく、概念的な説明や入力例、分析の方向性などが含まれており、理解を深めながら解答にたどり着けるよう工夫されています。

インストールが簡単

WebGoatの公式Dockerイメージが提供されており、数行のコマンドで立ち上げられることから、環境構築に不慣れなユーザーでも短時間で学習を開始できます。

また、WebGoatの仮想アプライアンスがVulnHubで配布されており、VirtualBox上に仮想マシンを構築することもできます。

オープンソース・無料

WebGoatはOWASPによるオープンソースプロジェクトであり、無料で利用できます。現在もGitHub上でメンテナンスされており、常に最新の環境で学習することができます。

2025年11月26日時点の最新バージョンは、v2025.3。(2025年3月12日リリース)

OWASP WebGoatのインストール

WebGoatの代表的なインストール方法(実行方法)には、以下の4つがあります。

主なインストール方法(実行方法)
  1. Dockerイメージを使用して、コンテナ環境で実行する
  2. Javaアーカイブファイル(JAR)またはソースコードを使用して、Javaアプリケーション環境を構築する
  3. VulnHubで配布している仮想マシンをVirtualBoxにインポートする
  4. OWASP BWAに含まれるWebGoatを使用する

この記事では、a.Dockerを使用c.VulnHubからダウンロードについて解説します。

「b.Javaアーカイブファイルまたはソースコードを使用する方法」は、依存関係の対応内容がインストール環境によって異なるため、本記事では割愛します。

また、「d.OWASP BWAのインストール方法」については、別記事「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/webgoat

docker 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/
WebGoatのトップページ
WebGoatのトップページ

停止したコンテナを再開する

$ sudo docker start -ia webgoat

docker startコマンドを実行することで、前回の状態を保持したままWebGoatを再開できます。

  • -i:コンテナの標準入力(STDIN)に接続する
  • -a:標準出力/標準エラーに接続し、シグナルも転送する
  • webgoat:コンテナ名

対話モードでコンテナを起動するため、-iaオプションを指定しています。

コンテナを削除(docker rm webgoat)した場合は、再度docker runを実行する必要があります。

VulnHub配布の仮想マシンをインストール

Docker環境を利用しない場合、VulnHubが提供する仮想アプライアンス(OVA形式)を使用し、仮想環境(VirtualBox)上にWebGoatの仮想マシンを構築します。

検証環境の構成
  • Windows 10
  • Oracle VirtualBox 7.1

※ネットワークアダプターは、ホストオンリーアダプターを使用しています。

初めてVulnHubを利用する方は、VulnHub 徹底入門もあわせてご覧ください。ネットワーク設定など仮想マシンの構築手順を〝スクリーンショット付き〟で詳しく解説しています。

STEP

WebGoatの仮想アプライアンスをダウンロード

ブラウザでVulnHubにアクセスし、WebGoatと検索して、仮想アプライアンス(.ova形式)をダウンロードします。

VulnHubからWebGoatの仮想アプライアンスをダウンロードする

ダウンロードサイトのリンクが切れているので、ミラーサイトからダウンロードします。

セットアップに必要な情報を確認しておきます。

URLhttp://<IPアドレス>:8000/WebGoat/
認証情報user:webgoat
pass:webgoat
ネットワーク情報DHCPサービス:有効
IPアドレス:自動割り当て
STEP

仮想アプライアンスをインポート

VirtualBoxを起動し、ファイル>仮想アプライアンスのインポートからOVAファイルを選択します。

VirtualBoxを起動し、WebGoatのOVAファイルを選択

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

WebGoatの仮想アプライアンスの設定情報を変更する

本記事の検証環境の場合

仮想マシンの基本フォルダー(環境にあわせて指定)
MACアドレスのポリシーすべてのネットワークアダプターでMACアドレスを生成

設定終了後、完了ボタンを押下すると、インポート処理が開始されます。

仮想アプライアンスをインポート中
STEP

ホストオンリーアダプターを変更

インポート後、仮想マシンのネットワーク設定を確認します。

仮想マシンのネットワーク設定

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

ホストオンリーアダプターを変更する
STEP

DHCPサーバーの有効化

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

DHCPサーバーを有効にする
STEP

仮想マシンを起動

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

仮想マシンを起動

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

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

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

仮想マシンのログインプロンプト
STEP

仮想マシンの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です。

STEP

ブラウザからWebGoatにアクセス

別の仮想マシン、またはホストOSのブラウザからhttp://<上記で確認したIPアドレス>:8000/WebGoat/を開きます。(本記事の場合、http://192.168.10.203:8000/WebGoat/

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のトレーニングの選択画面

WebGoatの日本語化

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

WebGoatの言語設定

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

ブラウザの翻訳機能を使って、WebGoatを日本語表示

WebGoatの学習にKali Linuxを使用する場合、下記の記事もご覧ください。

解き方に困ったら

本記事では課題の解答については割愛しております。各レッスンに掲載されている説明やヒントを参考に学習を進めてください。

ヒントボタン
課題のヒント

もし課題の解き方に迷われた場合は、WebGoat WalkthroughWebGoat WriteupなどのキーワードでGoogle検索してみて下さい。世界中のユーザーがブログやGitHubで解説記事を公開しています。

デフォラボ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次