¿Cuál es la diferencia entre las vulnerabilidades comunes de XSS y Dom XSS? [duplicar]

5

No soy un tipo de computadora, pero solo por curiosidad, recientemente comencé a aprender PHP para programar mi propio sitio web y he leído algunas de las vulnerabilidades más comunes que existen en las aplicaciones web. Sé lo básico sobre las vulnerabilidades de secuencias de comandos de sitios cruzados. Por lo tanto, un ataque XSS ocurre cuando la entrada del usuario no se filtra correctamente y se usa en el cuerpo de la página, por lo que el atacante puede inyectar códigos como códigos javascript / vbscript en el navegador y hacer cosas en el lado del cliente como secuestrar sus Cookies y guardarlas en una base de datos.

¿Pero cuál es la diferencia entre XSS y Dom XSS? ¿Existe una diferencia fundamental entre ellos? ¿Las vulnerabilidades de DOM XSS representan un mayor riesgo de seguridad? Si es así, ¿cómo? ¿Y cómo debo buscar las vulnerabilidades de Dom XSS en las aplicaciones web? Encuentro algunas cosas en Internet, pero algunas de ellas fueron avanzadas para mi nivel actual de comprensión.

Gracias chicos.

    
pregunta math.n00b 21.02.2014 - 10:20
fuente

2 respuestas

9

Bien, en un nivel básico hay tres tipos de secuencias de comandos entre sitios.

Reflejado: ingresa datos a la aplicación, que luego se repite sin escape, desinfección o codificación y es posible incluir código JavaScript que luego se ejecuta en el contexto de la aplicación

Almacenado: ingresa los datos que se almacenan dentro de la aplicación y luego se devuelven en respuesta a otra solicitud. Estos datos contienen código JavaScript que se ejecuta en el contexto de la aplicación

Basado en DOM: ingresa datos que modifican el DOM de la página web, estos datos contienen JavaScript que se ejecuta en el contexto de la aplicación. Es relativamente similar al XSS reflejado, pero la diferencia es que al modificar el DOM, es posible que los datos no lleguen al servidor (lo que cambia la forma en que se puede / debe mitigar, ya que los filtros del lado del servidor pueden no ser efectivos).

Un ejemplo serían las aplicaciones web que hacen un uso intensivo del JavaScript del lado del cliente y que toman los datos del usuario y actualizan el DOM sin enviarlos al servidor. Si ve aplicaciones que realizan cambios instantáneos en la página que está viendo cuando ingresa datos, es probable que estén usando JavaScript del lado del cliente para actualizar el DOM.

En términos de encontrarlos, eso es algo complicado, ya que las herramientas para encontrar XSS basadas en DOM no están tan desarrolladas como las de Reflective o Stored XSS. La única herramienta que lo aborda específicamente, que yo sepa es Dominator . También hay información sobre el Wiki DOM XSS que podría ser útil.

    
respondido por el Rоry McCune 21.02.2014 - 10:57
fuente
0

En pocas palabras, XSS basado en DOM puede ser explotado sin que el cliente solicite el servidor. El ataque tiene lugar en el DOM, que es local (en el contexto del usuario).

Para un desarrollador encontrarlos y corregirlos, esto es complicado, ya que hoy en día no existe una tecnología madura para detectar esas vulnerabilidades. Se utilizan algunos programas y scripts, pero esto sigue siendo un "trabajo en progreso", incluso el software "Dominator" mencionado (que, por cierto, es demasiado caro para lo que hace la OMI).     

respondido por el ack__ 21.02.2014 - 12:00
fuente

Lea otras preguntas en las etiquetas