Voltar às atualizações
New releaseOct 12, 2026

WebGoat v2026.5

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 e 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 ser utilizados por pessoas que pretendem aprender sobre segurança de aplicações e técnicas de testes de intrusão.

AVISO 1: Ao executar este programa, a sua máquina ficará extremamente vulnerável a ataques. Deve desligar-se da Internet enquanto utiliza este programa. A configuração predefinida do WebGoat liga-se a localhost para minimizar a exposição.

AVISO 2: Este programa destina-se apenas a fins educativos. Se tentar estas técnicas sem autorização, é muito provável que seja apanhado. Se for apanhado a realizar hacking não autorizado, a maioria das empresas irá despedi-lo. Alegar que estava a fazer investigação de segurança não 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 com Docker

Se já tem um navegador e o ZAP e/ou Burp instalados na sua máquina, neste caso pode executar a imagem do WebGoat diretamente com Docker.

Cada lançamento é também publicado 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, é necessário que o contentor seja executado no mesmo fuso horário. Para isso, pode definir a variável de ambiente TZ. Por exemplo:

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat

Se quiser usar o OWASP ZAP ou outro proxy, já não pode usar 127.0.0.1 ou localhost, mas pode usar entradas de host personalizadas. Por exemplo:

127.0.0.1 www.webgoat.local www.webwolf.local

Depois pode executar o contentor 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

Depois visite http://www.webgoat.local:8080/WebGoat/ e http://www.webwolf.local:9090/WebWolf/

2. Executar com Docker com um ambiente de trabalho Linux completo

Em vez de instalar ferramentas localmente, temos uma imagem Docker completa baseada na execução de um ambiente de trabalho no seu navegador. Desta forma, só precisa de executar uma imagem Docker, o que lhe dará a melhor experiência de utilização.

docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop

3. Autónomo

Descarregue o lançamento 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 na ligação no registo para iniciar o WebGoat.

3.1 Executar numa porta diferente

Se, por alguma razão, quiser executar o WebGoat numa porta diferente, pode fazê-lo adicionando o seguinte parâmetro:

java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002

No JAR combinado, --server.port é um alias para --webgoat.port. Use --webwolf.port para definir a porta do WebWolf separadamente.

Para as definições disponíveis, consulte as propriedades do WebGoat e as propriedades do WebWolf.

4. Executar a partir do código-fonte

Pré-requisitos:

  • Java 25
  • O seu IDE preferido
  • Git, ou suporte Git no seu IDE

Abra uma linha de comandos/janela:

git clone [email protected]:WebGoat/WebGoat.git

Agora vamos começar por compilar 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 o Spring Boot.

# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run

... deverá estar a executar o WebGoat em http://localhost:8080/WebGoat dentro de momentos.

Nota: A ligação acima irá redirecioná-lo para a página de início de sessão se não tiver sessão iniciada. Inicie sessão/Crie uma conta para continuar.

Para alterar o endereço IP, adicione a seguinte variável ao ficheiro WebGoat/webgoat-container/src/main/resources/application.properties:

server.address=x.x.x.x

4. Executar com um menu personalizado

Apenas para especialistas. Existe uma forma de configurar o WebGoat com um menu personalizado. Pode omitir algumas categorias de menu ou lições individuais definindo determinadas variáveis de ambiente.

Por exemplo, ao executar como um jar no Linux/macOS, ficaria 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 num docker run, 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