¿Es posible explotar esta alimentación de línea?

9

Durante una evaluación de seguridad en un sitio web, encontré un enlace de redirección que reflejaba los valores en el encabezado Ubicación. Lo primero que me vino a la mente fue la inyección de CRLF, así que probé algunas variaciones de "%0a" y logré incluir mi carga útil en la respuesta:

Solicitud:

"https://ads.example.com/promoredir?redirect=http%3A%2F%2Fmain.example.com%2F%E5%98%8A%E5%98%8DSet-Cookie:%20test"

Respuesta:

HTTP/1.1 302 Moved Temporarily 
Date: Sun, 12 Jul 2015 14:18:41 GMT 
Server: Apache 
Set-Cookie: JSESSIONID=5C24F2C96CE37DAA026591F5CAD91900; Path=/; Secure; HttpOnly 
Location: mail.example.com

Set-Cookie: test

Content-Length: 0 
X-Content-Type-Options: nosniff 
Strict-Transport-Security: max-age=31536000 
Vary: User-Agent 
Connection: close 
Content-Type: text/plain; charset=UTF-8

Sin embargo, cuando sigo la redirección, mi solicitud cambia a lo siguiente:

GET /Set-Cookie:%20test" HTTP/1.1
Host: main.example.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close

¿A dónde me voy mal aquí?

    
pregunta Mico 31.07.2015 - 17:38
fuente

4 respuestas

1

Intentaría hacer algo como esto:

http://www.example.com/somepage.php?page=%0d%0aContent-Type: text/html%0d%0aHTTP/1.1 200 OK%0d%0aContent-Type: text/html%0d%0a%0d%0a%3Chtml%3E TEST TEXT %3C/html%3E

para empezar. Luego, si ve 2 respuestas diferentes y una de ellas es 200, y si ve el texto, puede probar lo que sea con cookies.

    
respondido por el superuser 04.08.2015 - 22:18
fuente
0

Es imposible decirlo en tu "captura de pantalla" anterior, pero yo diría que no estás recuperando 0x0D 0x0A después de la ubicación, sino los bytes altos que has enviado (0x8A 0x8D), incluido tu Set-Cookie .

Y tampoco estás interpretando los bytes altos devueltos como CRLF, por lo que tu agente de usuario interpreta el Set-Cookie como la parte que no es el host de la URL.

Intente cambiar el orden de CR y LF, y observe un volcado hexadecimal de la respuesta del servidor web.

    
respondido por el MattBianco 03.08.2015 - 15:28
fuente
0

Creo que deberías enviar% E5% 98% 8D% E5% 98% 8A, no% E5% 98% 8A% E5% 98% 8D. De lo contrario, ambos tokens se expanden y probablemente terminará con una nueva línea adicional.

Por otra parte, la nueva línea adicional aparentemente no se interpreta en absoluto, así que me pregunto si tu exploit está funcionando, o si estás viendo que tu propia carga útil se repite de forma inofensiva para ti y luego interpretado como una nueva línea espuria.

Es decir, envías

location=(...omitted...)%E5%98%8A%E5%98%8D(...)cookie%20test

y el servidor devuelve una sola línea

Location: (same as above)

y esta es la razón por la que su navegador envía ese GET. Apareces para ver una nueva línea en tu respuesta porque la línea única de arriba se interpreta como dos líneas en tu terminal.

    
respondido por el LSerni 07.08.2015 - 17:01
fuente
0

He intentado el mismo tipo de error del que estás hablando. Pero el mismo problema al que me enfrento es que puede inyectar fácilmente una cookie o Set-Cookie pero no puede explotar más, como XSS, Inyección de contenido, etc. Puede inyectar contenido HTML en la página de redireccionamiento 302, pero no funciona. sentido porque muy pronto serás redirigido a la página.

En este caso, solo el% E5% 98% 8D% E5% 98% 8A funcionará para inyectar cookies. Además, supongo que no puede dividir el encabezado de respuesta en dos encabezados de respuesta de trabajo.

    
respondido por el WebPenT 08.04.2016 - 18:25
fuente

Lea otras preguntas en las etiquetas