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:
-
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);
-
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?