¿Qué tan malo es representar HTML de las cookies?

1

Recientemente trabajé con un marco PHP y vi que estaba colocando html en una cookie para leerlo desde JavaScript (no me preguntes por qué).

Intenté alterar el html en la cookie poniendo una instrucción alert('bingo') y funcionó. ¿Se puede usar este comportamiento como canal principal para XSS si no hay otras vulnerabilidades del lado del servidor?

En otras palabras: ¿cómo puede un atacante usar este comportamiento dado que este es el único vector conocido?

    
pregunta Mir 08.09.2017 - 15:55
fuente

2 respuestas

5

Suponiendo que no haya otras vulnerabilidades en el sitio web, no creo que esto sea explotable, ya que para poder explotar esto, el atacante primero tendría que poder controlar el contenido de esa cookie en particular. (Lo que seguramente requeriría el uso de alguna otra vulnerabilidad).

Sin embargo, si hay otras vulnerabilidades (ya sea del lado del cliente o del servidor) en el sitio, esta característica inusual podría usarse para empeorar significativamente el impacto de esas vulnerabilidades.

Por ejemplo, si alguna página del sitio se carga alguna vez a través de HTTP, un atacante MITM podría crear un ataque XSS semi-persistente al configurar el valor de esta cookie, posiblemente utilizando el ataque para robar datos que normalmente solo se puede acceder desde una página HTTPS más segura (como las cookies con el conjunto de indicadores seguro).

O si el sitio es vulnerable a un ataque de Cookie Tossing , ese mismo ataque (que normalmente solo sería útil para la fijación de sesiones y similares, también lo abriría a un ataque XSS completo contra los usuarios afectados.

En general, aunque esta práctica no sea terrible, todavía no lo recomendaría, especialmente porque hay formas mucho mejores de obtener contenido HTML del servidor en una página que no lo expone a ninguna nueva amenazas.

    
respondido por el Ajedi32 08.09.2017 - 21:32
fuente
2

No estoy defendiendo la práctica, pero es poco probable que sea un vector XSS. Para que así sea, un atacante tendría que poder controlar el contenido de la cookie de la víctima. En el XSS reflejado, esto generalmente se hace colocando un código malicioso en un parámetro de URL y haciendo que la víctima haga clic en él. No hay una forma similar de configurar las cookies de la víctima sin ejecutar un código en el contexto objetivo. De manera similar, para que este sea un vector para XSS persistente, el atacante tendría que poder establecer algún estado en el servidor que terminaría en la cookie de la víctima. Esto no es imposible, pero sería un uso inusual de una cookie.

    
respondido por el bmm6o 08.09.2017 - 18:27
fuente

Lea otras preguntas en las etiquetas