
WebGoat v2026.3
Преднамеренно уязвимое веб-приложение с интерактивными уроками и заданиями для изучения безопасности веб-приложений и методов тестирования на проникновение.
WebGoat: намеренно небезопасное веб-приложение
Введение
WebGoat — это намеренно небезопасное веб-приложение, поддерживаемое OWASP, предназначенное для обучения урокам по безопасности веб-приложений.
Эта программа демонстрирует типичные уязвимости серверных приложений. Упражнения предназначены для людей, изучающих безопасность приложений и методы тестирования на проникновение.
ПРЕДУПРЕЖДЕНИЕ 1: Во время работы этой программы ваша машина будет крайне уязвима для атак. При использовании этой программы следует отключиться от Интернета. Конфигурация WebGoat по умолчанию привязывается к localhost, чтобы минимизировать риск.
ПРЕДУПРЕЖДЕНИЕ 2: Эта программа предназначена только для образовательных целей. Если вы попробуете эти методы без разрешения, вас, скорее всего, поймают. Если вас поймают на несанкционированном взломе, большинство компаний уволят вас. Заявление о том, что вы занимались исследованиями в области безопасности, не сработает, поскольку это первое, что утверждают все хакеры.

Инструкции по установке:
Более подробную информацию см. в руководстве по внесению вклада
1. Запуск с помощью Docker
Если у вас уже установлены браузер и ZAP и/или Burp, в этом случае вы можете запустить образ WebGoat напрямую с помощью Docker.
Каждый релиз также публикуется на DockerHub.
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
Для некоторых уроков контейнер должен работать в том же часовом поясе. Для этого можно задать переменную окружения TZ. Например:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat
Если вы хотите использовать OWASP ZAP или другой прокси, вы больше не можете использовать 127.0.0.1 или localhost, но можете использовать собственные записи хостов. Например:
127.0.0.1 www.webgoat.local www.webwolf.local
Затем вы можете запустить контейнер следующей командой:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e WEBGOAT_HOST=www.webgoat.local -e WEBWOLF_HOST=www.webwolf.local -e TZ=America/Boise webgoat/webgoat
Затем откройте http://www.webgoat.local:8080/WebGoat/ и http://www.webwolf.local:9090/WebWolf/
2. Запуск с помощью Docker с полноценным Linux-десктопом
Вместо локальной установки инструментов у нас есть полный Docker-образ, основанный на запуске рабочего стола в вашем браузере. Таким образом, вам нужно только запустить Docker-образ, что даст вам наилучший пользовательский опыт.
docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop
3. Автономный запуск
Скачайте последний релиз WebGoat с https://github.com/WebGoat/WebGoat/releases
export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
Нажмите на ссылку в логе, чтобы запустить WebGoat.
3.1 Запуск на другом порту
Если по какой-то причине вы хотите запустить WebGoat на другом порту, вы можете сделать это, добавив следующий параметр:
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
Полный обзор всех доступных параметров см. в [файле свойств WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).
4. Запуск из исходников
Предварительные требования:
- Java 25
- Ваша любимая IDE
- Git или поддержка Git в вашей IDE
Откройте командную оболочку/окно:
git clone [email protected]:WebGoat/WebGoat.git
Теперь начнём с компиляции проекта.
cd WebGoat
git checkout <<branch_name>>
# On Linux/Mac:
./mvnw clean install
# On Windows:
./mvnw.cmd clean install
If you have ran WebGoat before, you should first run mvn clean -Pcleanall to clean up files from your temp and home directories which could fail the tests due to changes in lessons!
# Using docker or podman, you can than build the container locally
docker build -f Dockerfile . -t webgoat/webgoat
Теперь мы готовы запустить проект. WebGoat использует Spring Boot.
# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run
... через мгновение WebGoat должен запуститься на http://localhost:8080/WebGoat/.
Примечание: если вы не вошли в систему, указанная выше ссылка перенаправит вас на страницу входа. Войдите или создайте учётную запись, чтобы продолжить.
Чтобы изменить IP-адрес, добавьте следующую переменную в файл WebGoat/webgoat-container/src/main/resources/application.properties:
server.address=x.x.x.x
4. Запуск с настраиваемым меню
Только для специалистов. Существует способ настроить WebGoat с персонализированным меню. Вы можете исключить некоторые категории меню или отдельные уроки, задав определённые переменные окружения.
Например, при запуске в виде jar-файла на Linux/macOS это будет выглядеть так:
export TZ=Europe/Amsterdam # or your timezone
export EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE"
export EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations"
java -jar target/webgoat-2023.8-SNAPSHOT.jar
Или при запуске через docker run это (как только эта версия будет опубликована в Docker Hub) будет выглядеть так:
docker run -d -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE" -e EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations" webgoat/webgoat