XSS en contenido-Disposición

2

Supongamos que he encontrado un xss en el sitio example.com, ahora para activar un XSS, uso la siguiente URL:

https://example.com/a.php?v=%22%3E%3Cimg%20src=x

Lo que resulta en la siguiente respuesta:

HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Mon, 27 Jul 2015 02:15:23 GMT
Content-Type: text/html;
Content-Length: 44
Connection: keep-alive
Strict-Transport-Security: max-age=31557600; includeSubdomains;
X-Permitted-Cross-Domain-Policies: master-only
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy: sandbox
Content-Disposition: attachment

"><img src=x

¿Esto supone un riesgo para la seguridad considerando que la protección XSS está habilitada y también el entorno limitado de CSP y el adjunto de disposición de contenido mitigan esto para que incluso si la inyección se realizó correctamente, el código no se ejecutará para XSS?

    
pregunta wking77 27.07.2015 - 04:26
fuente

2 respuestas

1

Sí, esto todavía representa un riesgo para la seguridad.

Por lo que entiendo este encabezado solo se usa por IE 8 y más recientes le dicen al navegador que use, está integrado en el filtrado XSS. Incluso si las versiones modernas de otros navegadores lo utilizan, ciertamente hay navegadores más antiguos que no lo hacen. Además, no confiaría en la protección XSS incorporada de IE para mantener a nadie a salvo.

Si prevenir XSS fuera tan simple, XSS no sería una cosa.

ACTUALIZACIÓN:

En cuanto al Content-Disposition: Attachment , esto hará que XSS sea más difícil, pero parece que todavía hay algunas maneras de evitar esto:

Incluso si no es explotable en su estado actual, diría que esta es una muy mala práctica de seguridad. Dejaría el sitio en una posición donde un cambio de código aparentemente menor en el futuro podría abrir las cosas a una vulnerabilidad XSS

    
respondido por el Abe Miessler 27.07.2015 - 05:45
fuente
0

No en ese contexto, pero si puede lograr inyección de encabezado HTTP , podría ser posible.

De mi publicación de blog :

Al inyectar el tipo de contenido text/html\r\n\r\n en la carga de un archivo, se hizo que la descarga se representara en HTTP como:

HTTP/1.1 200 OK
Date: Mon, 16 Apr 2018 17:34:21 GMT
Expires: Thu, 26 Oct 1978 00:00:00 GMT
Content-Type: text/html

Cache-Control: no-store, no-cache, must-revalidate, max-age=0
X-Content-Type-Options: nosniff
Content-Length: 39
Vary: *
Connection: Close
content-disposition: attachment;filename=xss.htm
X-Frame-Options: SAMEORIGIN

<script>alert(document.domain)</script>

Se omite el encabezado content-disposition insertado por la aplicación, ya que el encabezado se ha transpuesto al cuerpo HTTP.

    
respondido por el SilverlightFox 17.04.2018 - 01:11
fuente

Lea otras preguntas en las etiquetas