Todos los Labs
Bug Bounty Labs
Labs basados en reportes reales de bug bounty. Practica vulnerabilidades en entornos seguros.
Todos los Labs
Labs basados en reportes reales de bug bounty. Practica vulnerabilidades en entornos seguros.
hunters entrenando
labs de reportes reales
completaciones
en bounties practicados
Deja de leer sobre bugs y empieza a cazarlos
Sin tarjeta · Academy gratis · cancela cuando quieras
Foro donde un parametro de URL se inyecta en la ruta del API del cliente. Mediante CSPT se puede redirigir la peticion al endpoint de cambio de contrasena del admin.
Currículos auto-generados según dificultad y tipo de vulnerabilidad. Click en uno para ver sus módulos.
Labs fáciles y rápidos para quien acaba de empezar. Construye tu primera racha y aprende la mecánica de la plataforma.
Domina las vulnerabilidades clásicas de cliente. Aprende a romper la confianza del navegador y a escalar XSS hasta ATO.
Todo lo que vive en el navegador: XSS en sus tres formas, CSRF, open redirects con bypass, clickjacking y prototype pollution. Cadenas que terminan en ATO con un solo click.
SSRF, RCE, deserialización y SSTI. Las vulnerabilidades que mueven los bounties más altos en bug bounty.
Las vulnerabilidades que tocan el servidor: SSRF a metadata interna, path traversal en uploads, RCE vía deserialización y SSTI. Los bounties más gordos viven aquí.
El OWASP API Top 10 en forma de lab. Endpoints sin RBAC, IDORs por ID predecible, mass assignment y broken function level auth — el pan diario del bug bounty moderno.
IDOR, broken auth, JWT mal firmados y OAuth roto. Si controlas el flujo de auth, controlas la app entera.
Lo que ningún scanner pilla: condiciones de carrera, business logic abusable y workflows mal validados.
Bugs que ningún scanner pilla: pagos saltables, cupones con race, role bypass del cliente. Los bugs que pagan más porque requieren entender el producto, no la stack.
Open redirects, info disclosure, subdomain takeovers. Encadena descubrimientos pequeños hasta el impacto crítico.
Labs difíciles e insane. Cadenas largas, exploits creativos y soluciones que requieren paciencia. Solo para serios.
Los labs basados en reportes con bounty alto. Bugs que cambian carreras y abren la puerta a programas privados.
Vulnerabilidades reportadas en sistemas de la NASA — desde recon de subdominios y SSRF en portales internos hasta IDORs en dashboards científicos.
La ruta canónica para aprender bug bounty desde cero. Resuelve cada lab en orden — cada uno desbloquea el siguiente. Los labs que requieren un plan superior se saltan automáticamente.
Formwave es un SaaS low-code ficticio que renderiza formularios dinámicos a partir de un schema JSON compartido por URL.
El portal de suscriptores de **Meridian Press** (grupo editorial ficticio) se sirve detrás de un edge cache. El error handler 404 legacy del origin refleja la cabecera `Referer` sin escapar y el edge cachea esa página keyed solo por el path
Portal de Custodia, un SaaS legal-tech de gestión tutelar. Dos páginas legacy reflejan parámetros de URL sin escapar.
Catálogo de datos de investigación del ficticio Helios Open Data Consortium (HODC). Por debajo del portal público corre un microservicio legacy "Database Service" bajo el prefijo `/database/database/*`. Un invitado puede POSTear contra `POST /database/database/projects` sin sesión (CWE-306); el campo `tableName` de ese cuerpo es un identificador que se interpola crudo y se ejecuta por el protocolo simple de node-postgres, habilitando stacked queries. Como el rol de conexión `forge_dba` es SUPERUSER, `COPY … FROM PROGRAM` se convierte en ejecución de comandos; el endpoint es ciego, así que la salida se lee de vuelta reutilizando una SQLi companion (UNION) en `POST /database/database/login`. La flag vive en un fichero `root:600` que ni el usuario del motor de BD puede leer: solo un binario setuid-root la revela
Red social ficticia "Plux" (login + feed + chat DM + notificaciones + ambient ticker) construida sobre Express + TypeScript con un sink XSS reflejado en `/googleAuthorization.html`. El parámetro GET `auth_url` se asigna directamente al atributo `href` de un botón "Continuar a Google" que se auto-clickea tras 2.2 segundos vía `setTimeout`. Un valor `auth_url=javascript:...` ejecuta el código en el origen de Plux. El admin **Marina Reyes** (bot Puppeteer) polea su bandeja de DMs cada 5s, extrae URLs, las abre en Chromium con sus cookies cargadas (`plux_sid` httpOnly + `plux_flag` no-httpOnly), y permanece en la página 4.5s — tiempo suficiente para que el sink dispare el auto-click y el payload `fetch` exfiltre `document.cookie` al listener del atacante. La cookie `plux_flag` contiene la flag en claro
Playground en un solo puerto con 3 mini-apps independientes. C1 (fácil) introduce el concepto base: la SPA concatena un parámetro de URL en un `fetch` sin sanitizar y un `../` lo redirige a otro endpoint. C2 (medio) añade un bot admin Puppeteer y un bypass de validación con URL encoding + `decodeURIComponent` tardío. C3 (difícil) encadena un allowlist con `%`, un path collapse `..` y el truco de `?` para mantener intacto el body POST mientras se redirige el fetch a `/api/audit/flag-export` con cookie auditor. La flag se entrega únicamente cuando la cadena del C3 se completa via bot. Estado en memoria, gating progresivo server-side, código vulnerable accesible al alumno desde el propio navegador
Portal ficticio de aplicación a programas de investigación de la agencia espacial AURORA. El backend, escrito como Rails 7, procesa el registro vía `params.require(:user).permit(...)`. La whitelist incluye accidentalmente los flags internos `approved` y `active`, lo que permite a cualquier solicitante crearse una cuenta pre-aprobada y obtener acceso al área restringida en un solo POST Autora del Fallo:https://www.linkedin.com/in/isabela-l1ghtn1ng/
Nexora AI Studios es un SaaS de bots de IA (marketplace estilo Poe.com) cuya consola pública valida con lista negra el parámetro `next` del login. Un detalle ortográfico en la lista (no contempla la barra invertida) deja escapar URLs externas tras la normalización WHATWG del navegador, y el bot interno *Admin Assistant* — que sigue links pegados en su chat desde dentro del service mesh — arrastra un header secreto en cada hop. Encadenar los dos defectos hace que el bot entregue el header privilegiado a un listener controlado por el atacante.
Plataforma ficticia de memoriales para mascotas. El wizard de creación de 5 pasos se puede secuestrar anónimamente combinando IDs enumerables + ausencia de session binding + un token CSRF que el backend acepta literal (`"csrf-token"`). El atacante toma control del memorial, lee datos privados y recupera la flag
Un SaaS ficticio (Lumen Workspace) cuyo endpoint de cierre de sesión acepta un destino arbitrario en `redirect_url`. El servidor hace `res.redirect(302, …)` con el valor tal cual, sin validar same-origin, esquema ni host.
Archivo científico ficticio inspirado en `seabass.gsfc.nasa.gov` (NASA Goddard). El buscador acepta búsquedas vía `POST /api/search` (seguro, React JSX escapa el JSON) pero ofrece un botón "Share this search" que convierte la búsqueda en una URL `GET /search/?keyword1=…`. Esa URL la sirve Express directamente como HTML server-side para crawlers científicos, interpolando los valores sin escape en el bloque "Active filters". Cualquier payload XSS en `keyword1` se ejecuta al abrir el link
El portal de admin del registry de contenedores de ORBITAL Systems Agency (OSA) confía en el código HTTP del login para decidir si redirigir al dashboard. Las credenciales por defecto `admin/admin` siguen reconocidas por el backend, que responde 401 pero emite la cookie de sesión administrativa. Bypassea con Burp Match & Replace y obtén acceso total al panel
Marketplace social moderno (estilo Wallapop / Vinted) que embebe en su página de búsqueda un iframe propio (`/widget/recommend.html`) llamado "Smart Recommendations Engine v2.4". Ese widget acepta una **fórmula de filtrado** vía `postMessage` desde la SPA padre y la pasa a `eval()`. El handler **no comprueba `event.origin`** ni valida la fórmula. Cualquier ventana que abra/embebe la SPA puede `postMessage` al iframe y ejecutar JS arbitrario en el origen del lab. La cadena se completa abusando del bot Puppeteer admin (Maya Reyes), que abre cualquier URL que un vendedor le mande por chat. El atacante hostea `exploit.html` con `python3 -m http.server 8080`, manda al admin el enlace, el bot navega, popup top-level al lab carga con cookies de admin, `eval` lee `document.cookie`, exfiltra al listener, y el atacante replica la cookie para extraer la flag de `/api/admin/dashboard`.
HackenStore es una tienda online ambientada en Dragon Ball pero simulando un entorno 100% real, vulnerable que permite a un atacante comprar cualquier producto sin pagar. El flujo de checkout ofrece "ScanPay" como método de pago por QR: El frontend genera un QR Hace polling al endpoint /api/payment/status/{paymentId} cada 2 segundos El problema: El backend confía ciegamente en el dato enviado por el cliente, confirmando el pedido sin verificar el estado real del pago contra el procesador.
Portal del gobierno ficticio con un subdominio legacy que apunta a un repositorio de GitHub Pages inexistente. El atacante debe descubrir el subdominio, identificar el CNAME dangling, reclamar el repositorio y tomar control del subdominio
E-commerce ficticio que encadena dos fallos: una SPA en React que decide el rol del usuario leyendo `GET /api/auth/me` (CWE-602), y un middleware de cache propio que normaliza la query string (strip de `utm_*`, `ref`, `cb`, `_`, `t`), no varía sobre `Authorization`/`Cookie`, e ignora `Cache-Control: private, no-store` (CWE-524). Un bot interno de soporte (Puppeteer-core) navega URLs same-origin con cookies de admin, lo que permite sembrar el cache con la respuesta privilegiada y leerla anónimamente.
En este laboratorio el usuario se enfrentará a una aplicación de e-commerce vulnerable donde será posible completar compras sin realizar el pago correctamente. A través del análisis de las peticiones HTTP y la lógica de negocio del sistema, el alumno deberá identificar cómo el backend valida incorrectamente el estado del pago, permitiendo forzar pedidos como "pagados" sin haber completado el proceso legítimo. Este laboratorio simula un escenario real de Bug Bounty donde los fallos de lógica de negocio pueden tener un impacto económico directo. El objetivo es comprender cómo funcionan los flujos de pago, detectar validaciones débiles y explotar inconsistencias entre cliente y servidor.
Chain an SVG upload, a `blob:` URL, a chat invite and a headless admin helper bot to turn a Self-XSS into full admin account takeover
Exploit a case-sensitive OTP tracking system to brute-force the admin password reset
Red social de fotos con endpoint de tracking publicitario vulnerable a open redirect. El endpoint valida Referer (bypass: publicar link en la plataforma) y dominio de destino (bypass: RFC 3986 @ syntax). Un bot clicka links de comentarios con un header secreto que contiene la flag
Plataforma de hosting cloud con feature de impersonacion de cuentas (Access Manager). Un Stored XSS en el nombre de las plantillas de email se activa al duplicarlas ("Copy of: PAYLOAD"). El XSS ejecuta en la sesion real de la victima (no impersonada), bypaseando las restricciones de permisos para modificar DNS records y lograr domain takeover.
Aplicacion de gestion de tareas donde el endpoint de registro acepta el campo 'role' del body de la peticion sin filtrar, permitiendo registrarse directamente como administrador.
Aplicacion de notas con endpoints administrativos que no validan correctamente el metodo HTTP. El desarrollador protegio GET/PUT/POST pero olvido proteger PATCH en el endpoint de cambio de contrasena, permitiendo cambiar la contrasena de cualquier usuario sin autenticacion de admin.
Red social tipo Threads donde un flag de devMode oculta la funcionalidad de subida de archivos. Activandolo via Burp se puede subir un SVG malicioso con JavaScript que roba la cookie de sesion del admin.
Red social donde los endpoints de crear posts y actualizar perfil son vulnerables a CSRF basado en formularios HTML clasicos.
Red social donde el endpoint de cambio de contraseña acepta la nueva contraseña sin verificar la contraseña actual, haciendolo vulnerable a CSRF.
Plataforma de ranking de hackers donde el rol del usuario se controla desde el cliente. Modificando la respuesta del servidor con Burp Suite (Match & Replace) se puede escalar a admin y cambiar la contrasena del super-hacker
Red social donde el endpoint de eliminacion de cuenta no requiere confirmacion de contrasena y es vulnerable a CSRF, permitiendo borrar la cuenta de cualquier usuario con un solo clic.
Red social donde las notas privadas permiten HTML (Self-XSS) y el endpoint de perfil es vulnerable a CSRF. Encadenando ambos, el atacante inyecta XSS persistente en el perfil de la victima.
Plataforma de pedidos donde una combinacion de IDOR (acceso a pedidos ajenos) y CORS misconfiguration (reflejo de origen) permite exfiltrar datos de pedidos de otros usuarios via un ataque encadenado
E-commerce con servicio de acortamiento de URLs que acepta cualquier destino sin validacion, creando redirecciones abiertas con URLs del dominio confiable.
8 desafios progresivos para bypassear diferentes configuraciones de Content Security Policy y ejecutar alert(1).
E-commerce con proveedor OAuth falso que acepta cualquier redirect_uri, permitiendo robar el codigo de autorizacion via redireccion abierta.
Plataforma corporativa con 8 desafios progresivos de IDOR: desde IDOR directo hasta Type Juggling, Array Injection, Body Parameter Override, Predictable IDs, HTTP Parameter Pollution, Mass Assignment y Transfer Intent Manipulation.
Plataforma de equipo con chat donde los mensajes se renderizan con dangerouslySetInnerHTML (Stored XSS) y el cambio de contrasena no requiere la contrasena actual.
E-commerce con parametros login_url y logout_url que redirigen sin validacion tras autenticacion, usables para phishing.
Marketplace donde el sistema de votos y reviews tiene race conditions que permiten votar multiples veces y dejar multiples reviews para destruir la reputacion de un producto.
E-commerce donde el flujo de checkout acepta un parametro redirect_url sin validacion, permitiendo redirigir al usuario a un sitio malicioso tras la compra.
Plataforma de cupones donde cada plan (Free/Pro/Premium) tiene un limite de cupones canjeables. Race condition permite superar el limite enviando peticiones concurrentes para diferentes cupones
Foro con sistema de pedidos donde el parametro file del endpoint de descarga de facturas permite path traversal para leer archivos arbitrarios del servidor.
E-commerce donde el endpoint de aplicar cupon tiene un delay entre verificar si ya fue usado y aplicarlo, permitiendo aplicar el mismo cupon multiples veces con peticiones concurrentes hasta que el precio llegue a 0.
Foro donde un parametro de URL se inyecta en la ruta del API del cliente. Mediante CSPT se puede redirigir la peticion al endpoint de cambio de contrasena del admin.
Plataforma de archivos con Page Export que permite escanear la red interna, descubrir un servicio admin oculto, robar credenciales y acceder al panel de administracion.
Plataforma de archivos donde la generacion de facturas PDF usa Puppeteer para renderizar HTML. El campo de direccion acepta HTML raw, permitiendo inyectar un iframe al servicio de admin interno.
Plataforma de archivos con importacion remota que realiza peticiones server-side pero no devuelve la respuesta. Los headers internos (incluyendo la flag) se envian en la peticion y son visibles desde el servidor del atacante.
Plataforma de archivos con herramienta de preview de websites que realiza peticiones server-side con un token corporativo en los headers, permitiendo acceder a servicios internos protegidos
Foro de seguridad donde el nombre de archivo del avatar se preserva sin sanitizar, permitiendo leer archivos del sistema como /etc/passwd via path traversal.
E-commerce de lujo donde los IDs de checkout son numericos de 4 digitos y no requieren autenticacion para acceder, permitiendo bruteforcear los 10.000 posibles IDs y encontrar datos sensibles.
Red social con 12 parametros diferentes inyectables en el DOM via distintos sinks (innerHTML, document.write, eval, outerHTML, setTimeout, location.replace). Ideal para practicar con herramientas automatizadas como dalfox.
Red social con 6 desafios progresivos de DOM XSS: desde location.hash + innerHTML hasta postMessage + innerHTML, pasando por eval, setTimeout y location.href.
Red social donde la pagina de error 404 refleja el parametro message en el HTML sin sanitizar, permitiendo XSS reflejado.
Red social donde el cuerpo de los posts se renderiza con dangerouslySetInnerHTML, permitiendo XSS persistente que afecta a todos los usuarios que ven el post.
Red social donde se pueden subir archivos SVG como avatares. Los SVGs se renderizan con etiquetas <object> que permiten la ejecucion de JavaScript embebido.
Plataforma de recetas de cocina donde el endpoint de registro acepta el campo 'role' sin validacion, permitiendo registrarse como administrador y acceder al panel con datos sensibles y la flag del sistema.
Plataforma de venta de coches premium con un endpoint de cambio de contrasena que acepta tanto POST como GET. Un bot administrador revisa los tickets de soporte y abre todos los links que contienen. Encadena el cambio de metodo HTTP con ingenieria social al bot para conseguir acceso administrativo y exfiltrar datos sensibles del negocio.