El servidor repite los encabezados HTTP al cliente, ¿hay algún problema de seguridad con eso?

1

Estoy solucionando problemas en un servidor que se comporta un poco extraño. Si hago una solicitud que se parece a esto:

GET / HTTP/1.1
Connection: close
Host: hostname
Someheader: somevalue
Location: Woot?
Set-Cookie: test=funtimes;

Obtendré una respuesta con todos los encabezados que he enviado.

HTTP/1.1 200 OK
Host: hostname
Set-Cookie: test=funtimes
Content-Type: application/json
Someheader: somevalue
Location: Woot?

Como puede ver, los encabezados se devuelven al cliente. No he visto esto antes y tampoco creo que muchas otras personas lo hayan hecho.

¿Puede usted ver posibles problemas de seguridad con este tipo de comportamiento?

    
pregunta Dog eat cat world 02.06.2016 - 23:36
fuente

4 respuestas

1

Existe una vulnerabilidad llamada División de respuesta HTTP que puede ser explotable, dependiendo de si los caracteres de nueva línea se filtran .

    
respondido por el multithr3at3d 02.06.2016 - 23:42
fuente
1

Es posible usar esto para crear cookies maliciosas para el sitio web o para enviar encabezados de seguridad inseguros para deshabilitar la protección de marcos, abrir la política de dominios cruzados o degradar o deshabilitar la protección de scripts entre sitios, lo que sería muy útil cuando ejecutando ataques de clicjacking, csrf o cross site scripting.

Sin embargo, la efectividad de esto dependería de los encabezados que el servidor ya establece y de cómo el navegador de destino trata los encabezados duplicados si el servidor tiene encabezados de seguridad para comenzar.

    
respondido por el wireghoul 03.06.2016 - 00:11
fuente
1

Es posible ver los valores de las cookies de HttpOnly durante un ataque XSS. También conocido como, Rastreo entre sitios ( enlace ).

Escenario de ataque

Requisitos previos:

  1. El sitio es vulnerable a XSS.
  2. Las cookies de sesión tienen la marca HttpOnly configurada para que JavaScript (XSS) no pueda leer la cookie.
  3. XSS y la página que envía la solicitud HTTP en el mismo origen.

Pasos:

  1. El atacante atrae a la víctima para que ejecute JavaScript malicioso (por ejemplo, a través de XSS).
  2. El atacante envía una solicitud HTTP (AJAX) en nombre de la víctima a la página que envía la solicitud HTTP.
  3. El atacante registra la respuesta HTTP (que incluye las cookies HttpOnly del usuario) y la envía a un servidor que controlan.
  4. El atacante utiliza las cookies para autenticarse como la víctima. (cuenta comprometida)

Dicho esto, el robo de sesión es solo un riesgo para XSS, incluso con esta página haciendo eco de las solicitudes HTTP que un atacante puede encontrar más fácil enganchar el navegador de la víctima con BEeF, por ejemplo. O realice una multitud de otros posibles ataques que aprovechen XSS.

EDICIÓN ---

Después de volver a leer su pregunta, me di cuenta de que no especificó dónde ni cómo el servidor omite la solicitud HTTP (asumí a través de un cuerpo de respuesta). Si esto es a través de los métodos TRACK / TRACE (XST tradicional a través de los encabezados de respuesta), será mucho más difícil ver las cookies de HttpOnly ya que los navegadores modernos ya no permiten los métodos AJAX TRACE / TRACK.

    
respondido por el ethicalhack3r 03.06.2016 - 16:02
fuente
0

Si hay un Caché de proxy inverso frente a este servidor, esto podría fácilmente conducir a ataques de envenenamiento de caché .

Puede generar la consulta con algunos encabezados de respuesta almacenados automáticamente en la respuesta almacenada en caché, como:

  • Cabeceras de política de seguridad de contenido
  • Los encabezados Set-Cookie (pero generalmente almacenan en caché los encabezados)
  • La codificación de transferencia o la longitud del contenido podrían ayudar a generar varias respuestas en lugar de una (@see Http Smuggling y HTTP split splitting)
  • cualquier otro encabezado relacionado con la seguridad que puedas encontrar

Si tiene alguna inyección de CR \ LF o Lf disponible, o como dijo en el comentario de respuesta de @ korockinout13 una página con encabezados en el cuerpo, también puede explotar para permitir el acceso de Javascript a los encabezados que no deberían ser legible . Esto es lo mismo que los problemas de Rastreo entre sitios (explotando el método TRACE). Aquí hay una buena explicación de esto.

    
respondido por el regilero 28.06.2016 - 16:20
fuente

Lea otras preguntas en las etiquetas