CRLF Injection — Injection de retours chariot

Injection Headers

Définition

En injectant des séquences \r\n (%0d%0a) dans une entrée reflétée dans les en-têtes HTTP, un attaquant peut ajouter des en-têtes arbitraires, fixer des cookies, voire scinder la réponse (HTTP Response Splitting) et injecter du contenu/XSS.

Payloads

# Injection d en-tête / fixation de cookie
/page?lang=fr%0d%0aSet-Cookie:%20session=attacker

# Response splitting -> XSS
/redirect?url=%0d%0a%0d%0a<script>alert(1)</script>

# Injection dans en-tête Location
/r?u=https://x%0d%0aSet-Cookie:%20admin=true

Défenses

Supprimer/encoder \r et \n dans toute donnée insérée dans un en-tête, utiliser les API de framework qui interdisent les caractères de contrôle, et valider strictement les valeurs reflétées (URL de redirection, langue, etc.).