CRLF Injection
Como Explorar
CRLF Injection permite que um atacante injete caracteres de quebra de linha (\r\n) em cabeçalhos HTTP, podendo manipular respostas e realizar ataques como HTTP Response Splitting.
terminal
Exemplo:
GET /set-cookie?name=foo%0d%0aSet-Cookie:evil=1
- Insira %0d%0a em parâmetros e observe se novos cabeçalhos são criados.
- Teste manipulação de cookies e redirecionamentos.
Por que acontece
Ocorre quando a aplicação insere dados do usuário em cabeçalhos HTTP sem sanitização, permitindo a quebra da estrutura do cabeçalho.
- Falta de validação de caracteres especiais.
- Concatenação direta de parâmetros em cabeçalhos.
Como Corrigir
- Remova ou escape caracteres \r e \n dos inputs.
- Valide e sanitize todos os dados usados em cabeçalhos.
terminal
// Exemplo seguro em Node.js
if (/
|
/.test(userInput)) throw new Error('Input inválido');