¿Podría XSS una página que filtre &, ", y los caracteres y tenga Content-Type establecido en UTF-8?

1

Estoy intentando apropiarse de un sitio web ficticio que tiene un formulario con un TEXTAREA de entrada en una página.
Cuando se envía el formulario, el contenido del formulario se muestra en una segunda página.

Sin embargo, la segunda página que recibe la entrada POST, la filtra para reemplazar " , < , > y & con &quot , &lt; , &gt; y &amp; .

La segunda página también tiene un:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />


Utilicé Fiddler para interceptar el POST de la primera página y modifiqué el encabezado de solicitud de
Content-Type: application/x-www-form-urlencoded
para:
Content-Type: application/x-www-form-urlencoded; charset=UTF-7

Y cambió el contenido de POSTed a:
+ADw-/font+AD4APA-script+AD4-alert(document.cookie)+ADw-/script+AD4

Esperando que se decodifique a:
</font><script>alert(document.cookie)</script>

Sin embargo, no hizo nada y el texto se mostró como está. Además, la codificación de texto de la segunda página fue reconocida como UTF-8. Supongo que eso se debe a que tiene una etiqueta meta en su HTML con el conjunto de caracteres establecido en UTF-8.

Quiero saber si hay una forma en que esta página puede ser explotada a través de XSS y si existe, ¿cuál sería el vector de entrada?

    
pregunta Vinayak 08.08.2014 - 07:25
fuente

1 respuesta

3

Las OWASP XSS Reglas de codificación mínimas experimentales sugieren que todo lo que necesita ser codificado es < , & y > , siempre que se especifique el conjunto de caracteres.

Asumiendo los resultados de la segunda página dentro de un contexto HTML, entonces no parece haber un vector de ataque XSS en este caso.

Establecer el conjunto de caracteres y luego codificar su POST simplemente significará que el servidor lo interpretará como tal, convirtiendo cualquier texto en su propia representación interna (asumiendo que no existen fallas en la pila de tecnología que usa el sitio y que todo está haciendo su trabajo correctamente ). Por lo tanto, cuando se emita, los caracteres se codificarán nuevamente, lo que significa que tu ataque falla.

    
respondido por el SilverlightFox 08.08.2014 - 09:55
fuente

Lea otras preguntas en las etiquetas