Skip to content

Herramienta donde puedes practicar las vulnerabilidades web más conocidas. Email: info@webvulnlab.org

License

Notifications You must be signed in to change notification settings

sil3ntH4ck3r/WebVulnLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebVulnLab (2.0v)

Buy Me A Coffee

English Version

IMPORTANTE: Este proyecto actualmente sólo está disponible en español. Estamos trabajando en una traducción al inglés y otros idiomas.

¿Te gustaría aprender a detectar y explotar vulnerabilidades web de forma segura y divertida? ¿Quieres poner a prueba tus habilidades de hacking ético con retos reales y variados? Entonces no te pierdas la segunda versión de la herramienta de contenedores con vulnerabilidades web, creada por un apasionado de la seguridad informática.

En esta nueva versión, encontrarás una interfaz más atractiva y fácil de usar, así como nuevas funcionalidades que te permitirán desplegar y configurar los contenedores a tu gusto. Aunque todavía está en desarrollo, ya puedes descargarla y probar las primeras características. ¡Te sorprenderás!

Contenido

Requisitos

  • docker (comando para instalar docker en Kali Linux: sudo apt-get install docker.io)

  • docker (comando para instalar docker en Kali Linux: sudo apt-get install docker-compose)

  • php

  • Git: Asegúrate de tener Git instalado en tu sistema. Puedes verificar si Git está instalado ejecutando el siguiente comando en la terminal:

    git --version

    Si Git no está instalado, puedes seguir las instrucciones de instalación en este enlace.

Personalización de la instalación

En el archivo install.sh, encontrarás tres arrays que contienen información sobre los contenedores a instalar: containers, database, y otros. Cada elemento de estos arrays tiene el siguiente formato:

  • containers
nombre_del_contenedor;$RUTA_DEL_DIRECTORIO;PUERTO_DE_PUBLICACIÓN:PUERTO_DEL_CONTENEDOR;imagen_del_contenedor
  • database
nombre_del_contenedor_de_la_base_de_datos;$RUTA_DEL_DIRECTORIO;PUERTO_DE_PUBLICACIÓN:PUERTO_DEL_CONTENEDOR;imagen_del_contenedor
  • otros
Descripción del comando;comando_a_ejecutar

Puedes comentar las líneas de los contenedores que no deseas instalar. Por ejemplo:

database=(
#   "sqli_db_v2;$PWD/sqli;8005:80;sqli_v2"
#   "blindsqli_db_v2;$PWD/blindsqli;8014:80;blindsqli_v2"
#   ...
)

Esto te permite instalar solo los contenedores que necesites para evitar problemas de rendimiento en tu sistema. Una vez comentados los contenedores que no quieres que se instalen, ya puedes pasar al paso siguiente. Después de que hayas resuelto y utilizado los contenedores que instalaste, puedes desinstalarlos si así lo deseas. Puedes hacerlo utilizando comandos como docker-compose down o docker rm, según corresponda. Si deseas instalar más contenedores, simplemente vuelve a comentar las líneas de los contenedores no deseados en el archivo install.sh y ejecuta el script nuevamente.

Este proceso te permite instalar y resolver los contenedores de forma selectiva, lo que puede ser útil para gestionar los recursos de tu sistema de manera más eficiente.

Instalación

IMPORTANTE: Ejecutar el script de instalación con permisos de superusuario.

Para instalar y utilizar la herramienta WebVulnLab, sigue los siguientes pasos:

  1. Descarga el repositorio de GitHub usando el siguiente comando en tu terminal:
git clone -b dev https://github.com/sil3ntH4ck3r/WebVulnLab.git

Si aún no tienes Git instalado, descárgalo e instálalo desde su página oficial

Para instalarlo en Ubuntu/Debian, puedes utilizar este comando:

sudo apt-get install git

Una vez descargado, el proyecto no requiere conexión a internet, ya que está diseñado para su uso en un entorno local.

  1. Navega hasta el directorio donde clonaste el repositorio y da permisos de ejecución al script de instalación:

Nota: El archivo install.sh no es compatible con Arch Linux (se esta trabajando en un nuevo script de instalación).

cd WebVulnLab
chmod +x install.sh
  1. Ejecuta el script de instalación:
sudo ./install.sh

Este script descargará e instalará todas las dependencias necesarias, creará los contenedores de Docker y configurará la herramienta para que puedas comenzar a utilizarla.

  1. Una vez finalizada la instalación, podrás acceder a los diferentes contenedores a través de los siguientes enlaces:
Docker Enlace Estatus
Tablero http://tablero.local/ Funcional
Servidor Principal http://menu.local/ Funcional
LFI http://lfi.local/ Funcional
Padding Oracle Attack http://paddingoracleattack.local/ Funcional
Type Juggling http://typejuggling.local/ Funcional
Remote File Inclusion http://rfi.local/ Funcional
XSS http://xss.local/ Funcional
XXE http://xxe.local/ Funcional
XPath Injection http://xpathinjection.local/ Funcional
LaTeX Injection http://latexinjection.local/ Funcional
ShellShock http://shellshock.local/ Funcional
SQL Injection (Error) http://sqli.local/ Funcional
Blind SQL Injection (Time) http://blindsqli.local/ Funcional
Domain Zone Transfer http://domainzonetransfer.local/ Funcional
CSRF http://csrf.local/ Funcional
SSRF http://ssrf.local/ Funcional
Blind XXE http://blindxxe.local/ Funcional
Blind XSS http://blindxss.local/ Funcional
HTML Injection http://htmlinjection.local/ Funcional
PHP Insecure Deseralization http://insecuredeseralizationphp.local/ Funcional
Insecure Direct Object Reference (iDOR) http://idor.local/ Funcional
Server-Side Template Injection (SSTI) http://ssti.local/ Funcional
Client-Side Template Injection (CSTI) http://csti.local/ Funcional
NoSQL Injections http://nosqlinjection.local/ Funcional
LDAP Injections http://ldapinjection.local/ Funcional
API's Abuse y Mass-Asignament Attack http://apiabuse.local/ Funcional
File Upload Abuse http://fileuploadabuse.local/ Funcional
Prototype Pollution http://prototypepollution.local/ Funcional
Open Redirect http://openredirect.local/ Funcional
WebDAV http://webdav.local/ Funcional
SquidProxies http://squidproxy.local/ Funcional
Intercambio de recursos de origen cruzado (CORS) http://cors.local/ Funcional
SQL Truncation http://sqltruncation.local/ Funcional
Session Puzzling / Session Fixation / Session Variable Overloading http://sessionpuzzling.local/ Funcional
Json Web Token http://jwt.local/ Funcional
Race Condition http://racecondition.local/ Funcional
CSS Injection http://cssi.local/ Funcional
Python Deserelization (DES-Yaml) http://yamldeseralization.local/ Funcional
Python Deserelization (DES-Pickle) http://pickledeseralization.local/ Funcional
GraphQL Introspection, Mutations http://graphql.local/ Funcional
OAuth / Werkzeug Debugger Console Abuse http://oauth_gallery.local
http://oauth_printing.local/ Funcional
SNMP Abuse + IPv6 http://snmp.local/ Funcional
AWS Lambda Abuse http://aws.local/ Funcional
HTTP smuggling - Trabajando en ello
Active Directory - Trabajando en ello

Cabe destacar que aún está en desarrollo, y que no todos los contenedores están funcionando correctamente. Este repositorio se actualiza a menudo.

Actualización del proyecto

Puedes utilizar el siguiente script para verificar y aplicar actualizaciones del proyecto desde la consola.

Pasos para actualizar el proyecto

  1. Abre la terminal y navega hasta el directorio del proyecto:
cd ruta/al/proyecto
  1. Ejecuta el script update.sh para verificar si hay actualizaciones disponibles:
./update.sh
  1. Si hay actualizaciones disponibles y deseas instalarlas, sigue las instrucciones proporcionadas por el script. Por ejemplo, puedes ingresar s y presionar Enter para realizar la actualización. Si decides no instalar las actualizaciones, puedes ingresar n y presionar Enter.

NOTA: Asegúrate de leer atentamente las instrucciones y los mensajes que muestra el script antes de tomar cualquier acción. El script verificará si hay nuevas versiones disponibles y te mostrará un mensaje indicando si hay actualizaciones.

  1. Si la actualización se completa con éxito, el script mostrará un mensaje indicando que la actualización ha sido exitosa. En caso de algún problema durante la actualización, se mostrará un mensaje de error correspondiente.

Contribuir

Si deseas contribuir al desarrollo de WebVulnLab, ¡eres bienvenido! Puedes hacerlo de varias maneras:

  • Informando de bugs o problemas que encuentres en la herramienta a través de la sección de "Issues" en el repositorio de GitHub.
  • Proponiendo nuevas características o mejoras.
  • Ayudando a solucionar problemas o desarrollando nuevas vulnerabilidades.

Cosas para las siguientes actualizaciones

  • Añadir más vulnerabilidades.
  • Ver en el tablero que máquinas están encendidas y que máquinas están apagadas.
  • Uso de Traefik para poner subdominios, y que no sea por IP
    • Al final no se ha echo con Traefik, sino que se ha aplicado Virtual Hosting. Ahora los enlaces a los contenedores son más fáciles de recordar.
  • Mejorar la estética.
  • Añadir la posibilidad de reiniciar los contenedores.
  • Añadir alguna máquina CTF
  • En cada máquina, añadir la opción de aprender, donde podrás descubrir más sobre dicha vulnerabilidad.
  • Hacer este mismo proyecto (WebVulnLab), pero para Windows.
  • Mejorar la documentación para que sea más fácil de entender y seguir.
  • Refactorizar el código para hacerlo más legible y mantenible.