BBLABSBBLABS
LaboratoriosAprender desde 0FuncionesPreciosTestimoniosDetrás de BBLABS
  1. Inicio
  2. Labs
  3. Stored XSS to Domain Takeover
Insane45 min

Stored XSS to Domain Takeover

Por @gorka

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.

$1,200

Es lo que una empresa pagó por este fallo en HackerOne. Aquí lo tienes reconstruido para que lo encuentres tú.

1.2K visitas14 completadosActualizado sept 2026
Iniciar sesión para empezar
Vídeo explicativopor @gorka

Aprende a encontrar este bug

Este bug pagó $1,200 en HackerOne.

Crea tu cuenta y practica bugs reales que se pagaron. Descarga el entorno, encuéntralo y aprende la técnica exacta — tu camino a tu primer bounty.

650

hunters entrenando

50

labs de hackeos reales

380

completaciones

$12.000

pagados por estos bugs

40 flags capturadas esta semana
Crear cuenta
Ya tengo cuenta

Acceso a todos los labs · sin permanencia · cancela cuando quieras

Hackers que lo han resuelto· 7

zynap1
@zynapjul 2026
flyingwhales2
@flyingwhalesjul 2026
alndrwla3
@alndrwlajul 2026
AL
@alex.burja.2000jul 2026
pl4nkton
@pl4nktonjun 2026
benjaminnocervigni
@benjaminnocervignimay 2026
MA
@maxioliveramay 2026

Objetivos

1
Obtener acceso de impersonacion a la cuenta de la victima (sarah_wilson) via Access Manager
2
Descubrir que los cambios de DNS estan bloqueados durante la impersonacion
3
Encontrar el Stored XSS en los nombres de plantillas de email al duplicarlas
4
Inyectar un payload XSS que modifique los DNS records del dominio de la victima
5
Explotar el bot que renderiza las plantillas para ejecutar el XSS en la sesion real de la victima
6
Recibir la flag via el health check de DNS que apunta al servidor del atacante

Información

Plataforma
HackerOne
Dificultad
Insane
Duración
45 min
Bounty
$1,200
Completados
14
Creador
gorka@gorka
Colaboradores
antoniorivera@antoniorivera
Actualizado
sept 2026

Descarga el entorno

Reprodúcelo y encuentra el bug tú mismo

Crear cuenta

Herramientas

Burp SuiteNavegadorNC

Prerequisitos

  • Conocimientos de XSS stored
  • Saber usar fetch()

Tags

XSS

Logro que recibirás

Cuando resuelvas este lab desbloqueas este logro compartible

Cuando resuelvas este lab desbloqueas este logro compartible

Writeups de la comunidad

Gratis · sin cuenta

La checklist que repaso en cada objetivo nuevo

47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.

Te das de baja en un clic, desde cualquier correo.

La aplicacion

NexusHost es una plataforma de hosting cloud donde los usuarios gestionan servidores, dominios con DNS, y plantillas de email. La app incluye:

  • Gestion de Servidores — Ver servidores con specs, estado, region y coste
  • Gestion de Dominios — Dominios con registros DNS editables (A/CNAME), SSL, auto-renovacion
  • Plantillas de Email — Crear, editar, duplicar y eliminar plantillas de correo
  • Access Manager — Invitar a otros usuarios a impersonar tu cuenta con permisos limitados
  • Panel Admin — Estadisticas de la plataforma, gestion de usuarios, log de actividad

La vulnerabilidad

La pagina de plantillas renderiza los nombres con dangerouslySetInnerHTML (para soportar "nombres ricos"). Al duplicar una plantilla, el nombre se genera como Copy of: ${original.name} sin sanitizar.

Si el nombre original contiene HTML/JavaScript, al duplicar se crea una plantilla con XSS persistente que se ejecuta cada vez que alguien ve la lista de plantillas.

La restriccion de permisos

Los usuarios que impersonan una cuenta tienen permisos limitados:

  • Pueden ver servidores, dominios, y gestionar plantillas
  • NO pueden modificar DNS — el endpoint devuelve 403 "DNS modifications not permitted in impersonation mode"

El bypass via XSS

El XSS se ejecuta en el contexto del navegador de la victima (sarah_wilson), que revisa sus plantillas cada 15 segundos. Como la victima NO esta impersonando (es su propia sesion), el XSS puede hacer fetch PUT /api/domains/:id/dns con exito, cambiando el destino DNS del dominio.

El health check de DNS

Cada 10 segundos, el servidor verifica los dominios enviando un POST con la flag al dns_target configurado. Cuando el atacante cambia el DNS a su propio servidor, recibe la flag.

Cadena de ataque completa

1. Registrarse como atacante
2. Access Manager → Solicitar acceso a sarah_wilson → Auto-aceptado
3. Impersonar sarah_wilson
4. Intentar cambiar DNS directamente → 403 (bloqueado)
5. Crear plantilla con XSS en el nombre
6. Duplicar plantilla → "Copy of: <img src=x onerror=fetch(...)>"
7. Dejar de impersonar → Bot renderiza plantillas cada 15s
8. XSS ejecuta en sesion de sarah → cambia DNS a host.docker.internal:9999
9. Montar servidor HTTP en puerto 9999
10. DNS health check (10s) → POST /health-check con flag

Payload XSS de ejemplo

SCREEEETTTTT

Recibir la flag

# Opcion 1: Python
python3 -m http.server 9999

# Opcion 2: Netcat
nc -lp 9999

# Recibiras un POST a /health-check con body:

Solucion interactiva

Accede a /writeup dentro de la aplicacion para una guia paso a paso con botones que ejecutan cada peticion automaticamente.


Remediacion

  1. Sanitizar todo input antes de renderizar — usar textContent en vez de innerHTML
  2. Nunca usar dangerouslySetInnerHTML con datos de usuario sin sanitizar
  3. Implementar Content Security Policy que bloquee scripts inline
  4. Requerir re-autenticacion para cambios criticos como DNS
  5. Auditar y alertar sobre modificaciones de DNS en tiempo real

La comunidad

Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.

Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Entrar a la comunidad de BBLABS en Discord
Entrar al Discord

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.

BBLABS LogoBBLABS

Laboratorios de hacking basados en hackeos reales. Aprende practicando sobre entornos vulnerables, con la resolución explicada paso a paso.

Producto

  • Funcionalidades
  • Precios
  • Labs
  • Aprender desde 0
  • Blog
  • Detrás de BBLABS

Legal

  • Términos
  • Privacidad
  • Cookies
  • Entrar
  • Crear cuenta

Para cualquier duda, bug, soporte o sugerencia puedes escribir a team@bblabs.es

© 2026 BBLABS. Todos los derechos reservados.