Назад к обновлениям
New releaseSep 14, 2026

WebGoat v2026.3

Преднамеренно уязвимое веб-приложение с интерактивными уроками и заданиями для изучения безопасности веб-приложений и методов тестирования на проникновение.

Поделиться

WebGoat: намеренно небезопасное веб-приложение

Build java-jdk OWASP Labs GitHub release Gitter Discussions Conventional Commits

Введение

WebGoat — это намеренно небезопасное веб-приложение, поддерживаемое OWASP, предназначенное для обучения урокам по безопасности веб-приложений.

Эта программа демонстрирует типичные уязвимости серверных приложений. Упражнения предназначены для людей, изучающих безопасность приложений и методы тестирования на проникновение.

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

ПРЕДУПРЕЖДЕНИЕ 2: Эта программа предназначена только для образовательных целей. Если вы попробуете эти методы без разрешения, вас, скорее всего, поймают. Если вас поймают на несанкционированном взломе, большинство компаний уволят вас. Заявление о том, что вы занимались исследованиями в области безопасности, не сработает, поскольку это первое, что утверждают все хакеры.

WebGoat

Инструкции по установке:

Более подробную информацию см. в руководстве по внесению вклада

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

Категории