Labs de CRLF Injection
CRLF Injection / HTTP Response Splitting
¿Qué es CRLF Injection?
La CRLF Injection inyecta caracteres de retorno de carro y salto de línea (%0d%0a) en input que el servidor refleja dentro de cabeceras HTTP. Permite añadir cabeceras arbitrarias, partir la respuesta (HTTP response splitting), inyectar Set-Cookie o redirects, falsear logs y escalar a XSS.
¿Por qué practicar CRLF Injection?
Es un bug clásico que sigue apareciendo en redirects, cabeceras de idioma y valores reflejados en headers, sobre todo cuando hay proxies o frameworks antiguos. Por sí solo puede dar session fixation o XSS, y encadenado con caché escala a impacto masivo. Buen bug para hunters que quieren dominar el protocolo HTTP.
¿Qué aprenderás con los labs de CRLF Injection?
Aprenderás a localizar input reflejado en cabeceras (Location, Set-Cookie, idioma), inyectar %0d%0a para crear cabeceras nuevas, partir la respuesta con doble CRLF para controlar el cuerpo, fijar cookies de sesión (session fixation) y encadenar la inyección a un XSS reflejado.
Tipos de CRLF Injection que cubrimos
- HTTP response splitting
Inyectas doble CRLF para partir la respuesta en dos y controlar la segunda por completo: cabeceras, cuerpo y hasta un XSS.
- Header injection
Añades cabeceras arbitrarias (Location, Set-Cookie, CSP) donde el servidor refleja tu input en un header sin sanear los CRLF.
- Log injection
Metes saltos de línea en valores que se escriben en logs para falsear entradas, ocultar rastro o inyectar en un visor de logs.
- Cookie injection
Inyectas un Set-Cookie propio para fijar la sesión de la víctima (session fixation) o sobrescribir cookies de seguridad.
¿Cómo encontrar y explotar CRLF Injection?
Playbook práctico — del recon a la prueba de concepto.
- 1
Localizar input reflejado en cabeceras
Busca parámetros que acaban en un header de respuesta: redirects (Location), cookies, cabeceras de idioma o cabeceras custom.
GET /redirect?url=/home → Location: /home - 2
Inyectar el CRLF
Mete %0d%0a codificado para forzar un salto de línea. Si aparece una cabecera nueva que tú controlas, la inyección funciona.
?url=/home%0d%0aSet-Cookie:%20sessionid=attacker - 3
Partir la respuesta (response splitting)
Con doble CRLF cierras el bloque de cabeceras y controlas el cuerpo de una segunda respuesta entera.
?url=%0d%0aContent-Length:%200%0d%0a%0d%0a<html>defacement</html> - 4
Inyectar Set-Cookie o redirect
Fija una cookie de sesión (session fixation) o añade un redirect/CSP que degrade la seguridad de la página.
%0d%0aSet-Cookie:%20sessionid=FIJADA%0d%0aLocation:%20https://evil.com - 5
Encadenar a XSS
Si controlas el cuerpo, mete HTML/JS para lograr un XSS reflejado incluso en endpoints que devuelven cabeceras, no HTML.
?url=%0d%0aContent-Type:text/html%0d%0a%0d%0a<script>alert(document.domain)</script>
Cargando labs...
Ver en catálogo completo →Preguntas frecuentes
¿Qué es la CRLF Injection?
Es una vulnerabilidad en la que se inyectan los caracteres de retorno de carro y salto de línea (\r\n, codificados como %0d%0a) en input que el servidor coloca dentro de cabeceras HTTP. Como esos caracteres separan cabeceras, el atacante puede añadir headers propios o incluso partir la respuesta.
¿Cómo se explota una CRLF Injection?
Se introduce %0d%0a en un parámetro reflejado en una cabecera (por ejemplo un redirect) para inyectar un Set-Cookie o un nuevo header. Con doble CRLF se cierra el bloque de cabeceras y se controla el cuerpo de la respuesta, lo que permite defacement, session fixation o un XSS reflejado.
¿Cómo encontrar CRLF Injection en bug bounty?
Identifica parámetros que terminan en cabeceras de respuesta (Location de redirects, idioma, cookies) e inyecta %0d%0a seguido de una cabecera de prueba. Si la respuesta incluye tu cabecera inyectada, es vulnerable; luego prueba doble CRLF para partir la respuesta y escalar a XSS.
¿Cómo prevenir la CRLF Injection?
Elimina o codifica los caracteres CR/LF de cualquier input que se coloque en cabeceras, usa las APIs del framework para setear headers (no concatenación de strings), valida las URLs de redirect contra una allowlist y mantén actualizados los servidores y proxies que ya filtran estos caracteres.
¿Diferencia entre CRLF Injection y XSS?
El XSS inyecta código en el HTML que interpreta el navegador. La CRLF Injection inyecta saltos de línea en las cabeceras HTTP: opera en la capa del protocolo. Ambos se pueden combinar, ya que partir la respuesta con CRLF permite controlar el cuerpo y meter ahí un payload de XSS reflejado.
Otras categorías relacionadas
- hunters entrenando
- 650
- labs de reportes reales
- 50
- completaciones
- 380
- en bounties practicados
- $200.000
hunters entrenando
labs de reportes reales
completaciones
en bounties practicados
Practica CRLF Injection en labs reales
Cada lab de CRLF Injection replica un reporte real de bug bounty que se pagó. Crea tu cuenta gratis, empieza por la Academy y pasa a los labs cuando quieras.
Sin tarjeta · Academy gratis · cancela cuando quieras