
Ferramenta Go e template Nuclei para testar James Kettle's (CVE-2025-32094) HTTP/1.1 must die: the desync endgame
Este repositório contém ferramentas de segurança defensiva para detectar vulnerabilidades de contrabando de requisições HTTP/1 (dessincronização) com base na pesquisa inovadora de James Kettle da PortSwigger.
Este trabalho é diretamente inspirado e implementa técnicas de:
Os padrões de ataque, técnicas e métodos de detecção implementados nestas ferramentas são baseados no trabalho pioneiro de James Kettle que revelou falhas fundamentais na implementação do protocolo HTTP/1.1 em grandes provedores de infraestrutura web.
A pesquisa de James Kettle demonstrou vulnerabilidades que afetam:
As definições ambíguas de limites de requisição do HTTP/1.1 criam o que James Kettle chamou de "ambiguidade extrema" sobre onde as requisições começam e terminam. Isso leva a discrepâncias de interpretação entre servidores front-end e back-end, possibilitando ataques sofisticados de contrabando de requisições. Essas ferramentas ajudam a identificar tais vulnerabilidades para testes de segurança defensiva.
http1-desync-test.go)Um testador abrangente de vulnerabilidade de dessincronização HTTP/1 que implementa múltiplos padrões de ataque.
# Clone the repository
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee
# Install dependencies
go mod download
# Build the tool
go build -o http1-desync-test http1-desync-test.go
# Test all attack patterns
./http1-desync-test -target https://example.com
# Test specific attack pattern
./http1-desync-test -target https://example.com -test vh
# Enable verbose output
./http1-desync-test -target https://example.com -verbose
# Set custom timeout
./http1-desync-test -target https://example.com -timeout 10s
-target: URL alvo (obrigatório)-test: Tipo de teste: all, vh, 0cl, expect, double, clte (padrão: all)-timeout: Timeout da requisição (padrão: 5s)-verbose: Habilita saída detalhada para ver requisições/respostas brutasnuclei-templates/http1-desync.yaml)Template de varredura automatizada para Nuclei detectar vulnerabilidades de dessincronização HTTP/1 em escala.
# Install Nuclei (if not already installed)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Copy template to Nuclei templates directory
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/
# Scan single target
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml
# Scan multiple targets
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml
# Scan with rate limiting
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10
Todos os padrões de ataque são baseados nas descobertas de pesquisa de James Kettle e em técnicas de exploração comprovadas.
Fonte: Pesquisa "HTTP/1 Must Die" de James Kettle
Explora discrepâncias onde o proxy front-end vê um limite de requisição enquanto o servidor back-end vê outro. O payload do ataque incorpora uma requisição oculta dentro do que parece ser dados de cabeçalho para o front-end, mas é interpretado como uma requisição separada pelo back-end.
Exemplo da pesquisa: Usado para demonstrar diferenças de interpretação em grandes provedores de CDN.
Fonte: Descobertas de vulnerabilidade de James Kettle em IIS e T-Mobile
Aproveita diferentes interpretações dos cabeçalhos Content-Length: 0 entre servidores. Alguns servidores ignoram o corpo quando CL=0, enquanto outros ainda o processam, levando a confusão no limite da requisição.
Impacto no mundo real: Explorado com sucesso contra servidores IIS e infraestrutura da T-Mobile.
Fonte: Pesquisa de James Kettle sobre T-Mobile e LastPass
Explora o mecanismo Expect: 100-continue onde front-end e back-end lidam com a continuação de forma diferente. Isso cria oportunidades para contrabandear requisições enquanto o front-end aguarda uma resposta 100-continue.
Contexto de pesquisa: Demonstrado contra sistemas de autenticação da T-Mobile e LastPass.
Fonte: Metodologia avançada de dessincronização de James Kettle
Encadeia múltiplos ataques de dessincronização para envenenar a fila de respostas, permitindo que atacantes controlem quais respostas outros usuários recebem. Isso representa um dos ataques mais sofisticados da pesquisa.
Descoberta crítica: Permite a tomada completa do site ao servir respostas maliciosas a usuários legítimos.
Fonte: Pesquisa central sobre ambiguidade HTTP/1.1 por James Kettle
Explora conflitos entre os cabeçalhos Content-Length e Transfer-Encoding: chunked. Diferentes servidores priorizam esses cabeçalhos de forma diferente, criando discrepâncias de interpretação que permitem o contrabando de requisições.
Fundamento: Esses conflitos representam a falha fundamental que James Kettle identificou na especificação HTTP/1.1.
Com base na metodologia de pesquisa de James Kettle, as ferramentas procuram:
Seguindo a classificação de impacto de James Kettle:
Estas ferramentas são projetadas para: