Skip to main content

CRLFuzz | SolydOne

  • CRLFuzz | SolydOne

Visão Geral

O CRLFuzz é uma ferramenta automatizada para detecção de vulnerabilidades de CRLF Injection (Carriage Return Line Feed Injection) em aplicações web.

No Kali Linux, o pacote já está disponível oficialmente no repositório da distribuição:

https://www.kali.org/tools/crlfuzz/

A ferramenta realiza fuzzing em parâmetros HTTP com payloads contendo:

  • %0d → Carriage Return
  • %0a → Line Feed

Esses caracteres podem permitir:

  • HTTP Response Splitting
  • Header Injection
  • Cache Poisoning
  • Session Fixation
  • Open Redirect manipulado via header

Instalação no Kali Linux

Como o pacote já está disponível no repositório oficial do Kali, a instalação é direta.

Atualizar repositórios

sudo apt update

Instalar o CRLFuzz

sudo apt install crlfuzz -y

Verificar instalação

crlfuzz -h

Se a instalação estiver correta, o help da ferramenta será exibido.


Conceito Técnico da Vulnerabilidade

CRLF Injection ocorre quando a aplicação permite que caracteres de quebra de linha sejam inseridos em headers HTTP.

Exemplo de requisição legítima:

GET /page HTTP/1.1
Host: target.com

Exemplo de exploração:

GET /page?redirect=%0d%0aSet-Cookie:admin=true HTTP/1.1
Host: target.com

Se o backend não sanitizar corretamente, o servidor pode interpretar:

HTTP/1.1 200 OK
Set-Cookie: admin=true

Isso caracteriza manipulação indevida da resposta.


Sintaxe Básica

Testar uma URL específica

crlfuzz -u https://target.com

Testar múltiplas URLs via arquivo

crlfuzz -l urls.txt

Ou via pipe:

cat urls.txt | crlfuzz

Principais Parâmetros

crlfuzz [options]

Parâmetros mais utilizados:

  • -u → URL única
  • -l → Lista de URLs
  • -c → Concorrência (threads)
  • -t → Timeout
  • -p → Proxy (ex: Burp)
  • -o → Arquivo de saída
  • -v → Verbose

Exemplos Práticos

Testando endpoint com parâmetro refletido

crlfuzz -u "https://target.com/page?next=FUZZ"

Usando proxy para análise manual (Burp)

crlfuzz -u https://target.com -p http://127.0.0.1:8080

Aumentando concorrência

crlfuzz -l urls.txt -c 50

Exportando resultado

crlfuzz -l urls.txt -o results.txt

Funcionamento Interno

Durante a execução, a ferramenta:

  • Identifica parâmetros na URL
  • Injeta múltiplos payloads CRLF codificados
  • Analisa a resposta HTTP
  • Verifica inserção de novos headers
  • Detecta redirecionamentos inesperados
  • Reporta possíveis vulnerabilidades

Payload típico utilizado:

%0d%0aSet-Cookie:crlf=1

Outro exemplo:

%0d%0aLocation:https://evil.com

Interpretação dos Resultados

Um resultado positivo pode indicar:

  • Header adicional inserido
  • Cookie criado indevidamente
  • Redirecionamento controlado
  • Alteração estrutural da resposta HTTP

Sempre validar manualmente com:

  • Burp Suite
  • curl
  • Navegador (DevTools → Network)

Exemplo de validação manual:

curl -i "https://target.com/page?x=%0d%0aSet-Cookie:test=1"

Mitigação (Visão Técnica)

No backend, a mitigação exige:

  • Sanitização de \r e \n
  • Uso correto de APIs para manipulação de headers
  • Validação de parâmetros de redirecionamento
  • Implementação de WAF

Exemplo em .NET:

var sanitized = input.Replace("\r", "").Replace("\n", "");

Exemplo em Node.js:

if (input.includes('\r') || input.includes('\n')) {
throw new Error("Invalid input");
}

Cenários Comuns de Exploração

  • Parâmetros redirect, url, next
  • APIs que retornam valores em headers
  • Aplicações com cache intermediário
  • Sistemas legacy que constroem headers manualmente
  • Logs HTTP manipuláveis