はじめに
前回の記事に引き続き、ペネトレーションテスト関連の取り組みでWebGoatを触ってみることになったので、ローカルマシン上で動かすまでの簡単なメモ等をまとめました。
WebGoatとは?
WebGoatは意図的に安全性を低くしたWebアプリケーションで、一般的なオープンソースコンポーネントを使用する Javaベースのアプリケーションでよく見られる脆弱性をテストすることができます。
WebGoatの使用は教育目的のみに限られます。
WebGoatで取り扱う内容を許可なく第三者が管理している端末へ試みると、不正アクセス等に該当する可能性がありますので、許可を得た端末や自身の端末に対してのみ使用するようご注意ください。
環境
今回はwsl2上で動作しているUbuntuにDockerとJavaを入れて構築しました。
(それぞれの細かいインストール手順は割愛します)
- OS: Windows 10
- WSL: WSL 2
- Ubuntu: Ubuntu 22.04.3 LTS
- Docker: version 26.1.1
- Java: openjdk version "21.0.3"
手順
WebGoatはDocker Hubにイメージが公開されていますが、カスタマイズして使いたいためローカルでイメージをビルドする方法としています。
-
Ubuntuの任意のディレクトリにWebGoatのリポジトリをクローンします
$ git clone https://github.com/WebGoat/WebGoat.git
-
クローンしたリポジトリに移動し、ライブラリをインストールします
$ cd WebGoat $ ./mvnw clean install ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 03:52 min [INFO] Finished at: 2024-xx-xxTxx:xx:xx+09:00 [INFO] ------------------------------------------------------------------------
-
コンテナイメージを作成します
$ docker build . -t webgoat [+] Building 60.8s (9/9) FINISHED ... $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE webgoat latest 1abc00efghi1 xx seconds ago 403MB
-
コンテナを起動します(起動が完了するまで数分かかります)
$ docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat:latest
-
任意のWebブラウザから
http://127.0.0.1:8080/WebGoat/
にアクセスします
特に問題が発生していなければ↓のようにWebGoatのログイン画面が開けるはずです!
おわりに
今回はWebGoatを動作させるまでの手順を簡単にまとめてみました!
次はWebGoatの課題の内容や、カスタマイズする方法等について記事にまとめてみようと思います!