¿Se reflejan los parámetros GET en una etiqueta de script reflejada o DOM basado en XSS?

1

Me cuesta entender si lo siguiente se consideraría como un XSS basado en DOM o un XSS reflejado y esperaba que alguien pudiera ayudarme a distinguir la diferencia.

Imagina el siguiente escenario:

  1. Imagina que un sitio tiene una función de búsqueda en la que el usuario proporciona información en una solicitud GET, por ejemplo. www.testsiteexample.com?search=test;%20alert(1);

  2. La entrada de la entrada de búsqueda se refleja nuevamente dentro de una variable de JavaScript:

    var searchResult = *userdata*
    

Creo que he respondido a mi propia pregunta, ya que la entrada del usuario se refleja sin autorización dentro de la declaración de la variable javascript: supongo que esto se considera un XSS reflexivo. Pero al mismo tiempo, el XSS basado en DOM como lo indica OWASP es:

  

La carga útil de ataque se ejecuta como resultado de la modificación del “entorno” DOM en el navegador de la víctima utilizado por el script del lado del cliente original, de modo que el código del lado del cliente se ejecuta de una manera “inesperada”. Es decir, la página en sí (la respuesta HTTP que es) no cambia, pero el código del lado del cliente contenido en la página se ejecuta de manera diferente debido a las modificaciones maliciosas que se han producido en el entorno DOM.

Entonces, ¿el hecho de que la entrada del usuario cambie el script del lado del cliente recibido de nuevo al usuario, hace que este sea un XSS reflexivo?

    
pregunta XSS_CONFUSION_USER 02.07.2016 - 01:54
fuente

1 respuesta

3

Esto se refleja en XSS, no en XSS basado en DOM.

La diferencia es sutil, pero aquí están las frases clave.

OWASP - DOM Based XSS

  

la página en sí misma (la respuesta HTTP que es) no cambia, pero el código del lado del cliente contenido en la página se ejecuta de manera diferente debido a las modificaciones maliciosas que se han producido en el entorno DOM.

Un ejemplo clásico:

<p>Current URL: <script>document.write(window.location);</script></p>

URL de carga útil:

http://example.com/page.html#<script>alert(1)</script>

Vea cómo la carga útil no se encuentra en la fuente de la página en sí, sino que se crea a partir de la URL del navegador.

OWASP: prueba de scripts de sitios de cruce reflejado (OTG-INPVAL-001)

  

La secuencia de comandos reflejada entre sitios (XSS) se produce cuando un atacante inyecta un código ejecutable del navegador dentro de una única respuesta HTTP. [...] La cadena de ataque se incluye como parte de los parámetros URI o HTTP diseñados, procesada incorrectamente por la aplicación y devuelta a la víctima.

Un ejemplo clásico:

<p>Current URL: <?php echo $_SERVER['REQUEST_URI']; ?></p>

URL de carga útil:

http://example.com/page.php?<script>alert(1)</script>

Vea cómo se encuentra la carga útil en la fuente de la página, pero desde la URL que se pasa al script PHP.

    
respondido por el Alexander O'Mara 02.07.2016 - 03:18
fuente

Lea otras preguntas en las etiquetas