Volver a actualizaciones
Nuevo releaseSep 14, 2026

WebGoat v2026.3

Aplicación web deliberadamente vulnerable con lecciones interactivas y desafíos para aprender seguridad de aplicaciones web y técnicas de pruebas de penetración.

Compartir

WebGoat: una aplicación web deliberadamente insegura

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

Introducción

WebGoat es una aplicación web deliberadamente insegura mantenida por OWASP y diseñada para enseñar lecciones sobre seguridad en aplicaciones web.

Este programa es una demostración de fallos comunes en aplicaciones del lado del servidor. Los ejercicios están pensados para que las personas aprendan sobre seguridad en aplicaciones y técnicas de pruebas de penetración.

ADVERTENCIA 1: Mientras ejecutes este programa, tu máquina será extremadamente vulnerable a ataques. Deberías desconectarte de Internet mientras uses este programa. La configuración predeterminada de WebGoat se vincula a localhost para minimizar la exposición.

ADVERTENCIA 2: Este programa tiene fines educativos únicamente. Si intentas estas técnicas sin autorización, es muy probable que te atrapen. Si te atrapan realizando hacking no autorizado, la mayoría de las empresas te despedirán. Afirmar que estabas haciendo investigación de seguridad no funcionará, ya que es lo primero que todos los hackers afirman.

WebGoat

Instrucciones de instalación:

Para más detalles, consulta la guía de contribución

1. Ejecutar usando Docker

Si ya tienes un navegador y ZAP y/o Burp instalados en tu máquina, puedes ejecutar la imagen de WebGoat directamente con Docker.

Cada versión también se publica en DockerHub.

docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat

Para algunas lecciones, necesitas que el contenedor se ejecute en la misma zona horaria. Para ello, puedes establecer la variable de entorno TZ. P. ej.

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

Si quieres usar OWASP ZAP u otro proxy, ya no puedes usar 127.0.0.1 ni localhost, pero puedes usar entradas de host personalizadas. Por ejemplo:

127.0.0.1 www.webgoat.local www.webwolf.local

Entonces puedes ejecutar el contenedor con:

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

Luego visita http://www.webgoat.local:8080/WebGoat/ y http://www.webwolf.local:9090/WebWolf/

2. Ejecutar usando Docker con escritorio Linux completo

En lugar de instalar herramientas localmente, tenemos una imagen Docker completa basada en ejecutar un escritorio en tu navegador. De esta forma, solo tienes que ejecutar una imagen Docker que te dará la mejor experiencia de usuario.

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

3. Ejecución independiente

Descarga la última versión de WebGoat desde https://github.com/WebGoat/WebGoat/releases

export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar

Haz clic en el enlace del registro para iniciar WebGoat.

3.1 Ejecutar en un puerto diferente

Si por alguna razón quieres ejecutar WebGoat en un puerto diferente, puedes hacerlo añadiendo el siguiente parámetro:

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

Para obtener una visión completa de todos los parámetros que puedes usar, consulta el [archivo de propiedades de WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).

4. Ejecutar desde el código fuente

Requisitos previos:

  • Java 25
  • Tu IDE favorito
  • Git, o soporte de Git en tu IDE

Abre una consola o ventana de comandos:

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

Ahora vamos a empezar compilando el proyecto.

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

Ahora estamos listos para ejecutar el proyecto. WebGoat utiliza Spring Boot.

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

... deberías tener WebGoat ejecutándose en http://localhost:8080/WebGoat en breve.

Nota: El enlace anterior te redirigirá a la página de inicio de sesión si no has iniciado sesión. Inicia sesión o crea una cuenta para continuar.

Para cambiar la dirección IP, añade la siguiente variable al archivo WebGoat/webgoat-container/src/main/resources/application.properties:

server.address=x.x.x.x

4. Ejecutar con menú personalizado

Solo para especialistas. Hay una forma de configurar WebGoat con un menú personalizado. Puedes omitir algunas categorías del menú o lecciones individuales estableciendo ciertas variables de entorno.

Por ejemplo, ejecutándolo como un jar en Linux/macOS se verá así:

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

O en una ejecución con Docker se vería así (una vez que esta versión se publique en 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

Categorías