Cross Site Scripting

Stored XSS

Stored cross-site scripting surgen cuando una aplicación recibe datos de una fuente que no es confiable e incluye esos datos dentro de sus respuestas HTTP posteriores de manera insegura.

POST /post/comment HTTP/1.1 
Host: vulnerable-website.com 
Content-Length: 100 

postId=3&comment=This+post+was+extremely+helpful.&name=Carlos+Montoya&email=carlos%40normal-user.net

Una vez enviado este comentario, cualquier usuario que visite la entrada del blog recibirá lo siguiente dentro de la respuesta de la aplicación:

<p>This post was extremely helpful.</p>

Suponiendo que la aplicación no realice ningún otro procesamiento de los datos, un atacante puede enviar un comentario malicioso como éste:

comment=%3Cscript%3E%2F*%2BBad%2Bstuff%2Bhere...%2B*%2F%3C%2Fscript%3E

Cualquier usuario que visite la entrada del blog recibirá ahora lo siguiente dentro de la respuesta de la aplicación:

<p><script>/* Bad stuff here... */</script></p>

El script suministrado por el atacante se ejecutará entonces en el navegador del usuario víctima, en el contexto de su sesión con la aplicación.

XSS Testing Payloads

<script>alert(window.origin)</script>

<p>Test Xss</p>

Reflected XSS

El cross-site scripting reflejado (o XSS) surge cuando una aplicación recibe datos en una petición HTTP e incluye esos datos en la respuesta inmediata de forma insegura.

Supongamos que un sitio web tiene una función de búsqueda que recibe el término de búsqueda introducido por el usuario en un parámetro URL:

La aplicación se hace eco del término de búsqueda suministrado en la respuesta a esta URL:

Suponiendo que la aplicación no realiza ningún otro procesamiento de los datos, un atacante puede construir un ataque como este:

Esta URL da como resultado la siguiente respuesta:

DOM XSS

El XSS basado en DOM se procesa completamente en el lado del cliente a través de JavaScript. El DOM XSS se produce cuando se utiliza JavaScript para cambiar el origen de la página a través del Modelo de Objetos del Documento (DOM).

Last updated