
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.
WebGoat: Uma aplicação Web deliberadamente insegura
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.

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