¿Es este XSS reflejado o basado en DOM?

1

Escenario:

El script del lado del servidor toma el parámetro de URL parameter1 y lo escribe sin codificar en la cookie cookie1 . Luego se devuelve la página HTML normal que contiene el script del lado del cliente.

El script del lado del cliente, cuando el usuario activa una acción, toma un valor almacenado en la cookie cookie1 y lo inserta sin ningún procesamiento como contenido HTML de un párrafo.

¿Cómo clasificar este XSS? Por un lado, la carga útil llega al servidor y el código del lado del servidor puede codificar los datos proporcionados por el usuario antes de colocarlos en una cookie. Por otro lado, la manipulación insegura de DOM es otra razón por la que ocurre XSS. ¿Podría aclarar la distinción entre XSS reflejado y basado en DOM en este ejemplo en particular?

    
pregunta 01.06.2015 - 10:08
fuente

1 respuesta

0

Basado en DOM si lo está basando en el sistema de clasificación almacenado / reflejado / DOM.

De Tipos de OWASP de secuencias de comandos entre sitios :

  

DOM basado en XSS es una forma de XSS desde donde fluye la totalidad de los datos contaminados   la fuente a hundir tiene lugar en el navegador, es decir, la fuente del   los datos están en el DOM, el sumidero también está en el DOM y el flujo de datos   nunca abandona el navegador.

Aquí la fuente de los datos es document.cookie y el sumidero también se encuentra en el DOM (contenido HTML de un párrafo).

Sin embargo, la clasificación de XSS de tal manera realmente solo se reduce a la semántica, como señala el artículo:

  

Durante años, la mayoría de la gente pensó en estos (Almacenado, Reflejado, DOM) como   Tres tipos diferentes de XSS, pero en realidad, se superponen. Usted puede   tienen XSS basados en DOM almacenados y reflejados.

Usando lo anterior, supongo que podrías clasificarlo como "Basado en DOM reflejado".

OWASP ha intentado que las personas reclasifiquen XSS como servidor o cliente, donde DOM XSS es un subconjunto de Client XSS. El uso de este sistema sería una vulnerabilidad "Reflected Client XSS".

Independientemente de la clasificación real, la vulnerabilidad aquí está en el DOM en lugar del almacenamiento de cookies, ya que no hay necesidad de codificar HTML para el almacenamiento en una cookie. La codificación debe hacerse lo más tarde posible cuando se conoce el contexto de uso; de lo contrario, esta cookie podría haberse envenenado.

por ejemplo

  1. El sitio web está en example.com y normalmente solo escucha en HTTPS.
  2. Attacker Man-In-The-Middles una conexión HTTP desde su víctima y los envía a example.com a través de HTTP simple. El servidor HTTP en este caso es el atacante.
  3. Attacker establece la cookie que contiene algún código de script.
  4. La víctima más tarde visita el example.com real sobre HTTPS y se activa el XSS.

Como el código que agrega el texto al DOM no es la codificación HTML correcta, se trata de un ataque XSS basado en DOM. Como puede ver en el ejemplo anterior, la codificación HTML en el almacenamiento en la cookie no detiene el escenario de ataque anterior.

    
respondido por el SilverlightFox 01.06.2015 - 17:01
fuente

Lea otras preguntas en las etiquetas