
WebGoat v2026.3
Aplicação web deliberadamente vulnerável com lições interativas e desafios para aprender segurança de aplicações web e técnicas de teste de penetração.
WebGoat: Uma aplicação web deliberadamente insegura
Introdução
WebGoat é uma aplicação web deliberadamente insegura mantida pela OWASP projetada para ensinar lições de segurança de aplicações web.
Este programa é uma demonstração de falhas comuns em aplicações do lado do servidor. Os exercícios destinam-se a pessoas que desejam aprender sobre segurança de aplicações e técnicas de teste de penetração.
AVISO 1: Ao executar este programa, sua máquina ficará extremamente vulnerável a ataques. Você deve se desconectar da Internet enquanto utiliza este programa. A configuração padrão do WebGoat vincula-se a localhost para minimizar a exposição.
AVISO 2: Este programa tem finalidade exclusivamente educacional. Se você tentar estas técnicas sem autorização, muito provavelmente será pego. Se for pego se envolvendo em hacking não autorizado, a maioria das empresas irá demiti-lo. Alegar que você estava fazendo pesquisa de segurança não vai funcionar, pois é a primeira coisa que todos os hackers alegam.

Instruções de instalação:
Para mais detalhes, consulte o guia de contribuição
1. Executar usando Docker
Se você já tem um navegador e ZAP e/ou Burp instalados em sua máquina, nesse caso você pode executar a imagem do WebGoat diretamente usando Docker.
Todas as versões também são publicadas no DockerHub.
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
Para algumas lições, você precisa que o contêiner seja executado no mesmo fuso horário. Para isso, você pode definir a variável de ambiente TZ. Ex.:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat
Se você quiser usar o OWASP ZAP ou outro proxy, não poderá mais usar 127.0.0.1 ou localhost, mas poderá usar entradas de host personalizadas. Por exemplo:
127.0.0.1 www.webgoat.local www.webwolf.local
Então você pode executar o contêiner com:
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
Em seguida, visite http://www.webgoat.local:8080/WebGoat/ e http://www.webwolf.local:9090/WebWolf/
2. Executar usando Docker com desktop Linux completo
Em vez de instalar ferramentas localmente, temos uma imagem Docker completa baseada na execução de um desktop no seu navegador. Dessa forma, você só precisa executar uma imagem Docker, o que proporcionará a melhor experiência ao usuário.
docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop
3. Standalone
Baixe a versão mais recente do WebGoat em https://github.com/WebGoat/WebGoat/releases
export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
Clique no link no log para iniciar o WebGoat.
3.1 Executando em uma porta diferente
Se por algum motivo você quiser executar o WebGoat em uma porta diferente, você pode fazer isso adicionando o seguinte parâmetro:
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
Para uma visão geral completa de todos os parâmetros que você pode usar, consulte o [arquivo de propriedades do WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).
4. Executar a partir dos fontes
Pré-requisitos:
- Java 25
- Sua IDE favorita
- Git, ou suporte a Git na sua IDE
Abra um shell/janela de comando:
git clone [email protected]:WebGoat/WebGoat.git
Agora vamos começar compilando o projeto.
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
Agora estamos prontos para executar o projeto. O WebGoat usa Spring Boot.
# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run
... o WebGoat deve estar em execução em http://localhost:8080/WebGoat/ em instantes.
Nota: O link acima redirecionará você para a página de login se você não estiver logado. Faça login/crie uma conta para continuar.
Para alterar o endereço IP, adicione a seguinte variável ao arquivo WebGoat/webgoat-container/src/main/resources/application.properties:
server.address=x.x.x.x
4. Executar com menu personalizado
Apenas para especialistas. Existe uma maneira de configurar o WebGoat com um menu personalizado. Você pode omitir algumas categorias de menu ou lições individuais definindo certas variáveis de ambiente.
Por exemplo, executando como um jar no Linux/macOS, ficará assim:
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
Ou em uma execução docker ficaria assim (assim que esta versão for enviada para o 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