CRLF sta per Carriage Return (CR) e Line Feed (LF), che sono caratteri speciali utilizzati per indicare una nuova riga nei protocolli di testo, come HTTP. In HTTP, una riga di intestazione (header) è separata da una nuova riga, rappresentata da \r\n (CRLF).
Cos’è una CRLF Injection?
Una CRLF Injection è una vulnerabilità che si verifica quando un’applicazione web non sanitizza correttamente l’input dell’utente, permettendo a un aggressore di inserire caratteri CRLF (\r\n) per manipolare le risposte HTTP o le intestazioni (headers).
Come Funziona?
-
Un aggressore può inserire caratteri CRLF in un input (ad esempio, un parametro URL o un campo di un form).
-
Se l’applicazione non sanitizza correttamente l’input, i caratteri CRLF possono essere interpretati come una nuova riga, permettendo all’aggressore di:
-
Iniettare nuove intestazioni HTTP: Ad esempio, aggiungere un header
Locationper reindirizzare l’utente a un sito malevolo. -
Dividere la risposta HTTP: Creare una risposta HTTP multipla, che può essere utilizzata per attacchi come il Response Splitting.
-