Voltar às atualizações
New releaseSep 14, 2026

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.

Compartilhar

WebGoat: Uma aplicação web deliberadamente insegura

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

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.

WebGoat

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

Categorias