
herramienta Go y plantilla de Nuclei para probar el 'HTTP/1.1 debe morir: el final del desync' de James Kettle (CVE-2025-32094)
Este repositorio contiene herramientas de seguridad defensiva para detectar vulnerabilidades de contrabando de solicitudes (desync) HTTP/1 basadas en la innovadora investigación de James Kettle de PortSwigger.
Este trabajo está directamente inspirado en e implementa técnicas de:
Los patrones de ataque, técnicas y métodos de detección implementados en estas herramientas se basan en el trabajo pionero de James Kettle que reveló fallas fundamentales en la implementación del protocolo HTTP/1.1 en los principales proveedores de infraestructura web.
La investigación de James Kettle demostró vulnerabilidades que afectaban a:
Las definiciones ambiguas de los límites de las solicitudes en HTTP/1.1 crean lo que James Kettle denominó "ambigüedad extrema" sobre dónde comienzan y terminan las solicitudes. Esto lleva a discrepancias en el análisis sintáctico entre servidores front-end y back-end, permitiendo ataques sofisticados de contrabando de solicitudes. Estas herramientas ayudan a identificar dichas vulnerabilidades para realizar pruebas de seguridad defensiva.
http1-desync-test.go)Un completo probador de vulnerabilidades de desync HTTP/1 que implementa múltiples patrones de ataque.
# Clonar el repositorio
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee
# Instalar dependencias
go mod download
# Compilar la herramienta
go build -o http1-desync-test http1-desync-test.go
# Probar todos los patrones de ataque
./http1-desync-test -target https://example.com
# Probar un patrón de ataque específico
./http1-desync-test -target https://example.com -test vh
# Habilitar salida detallada
./http1-desync-test -target https://example.com -verbose
# Establecer tiempo de espera personalizado
./http1-desync-test -target https://example.com -timeout 10s
-target: URL objetivo (requerido)-test: Tipo de prueba: all, vh, 0cl, expect, double, clte (por defecto: all)-timeout: Tiempo de espera de la solicitud (por defecto: 5s)-verbose: Habilitar salida detallada para ver solicitudes/respuestas sin procesarnuclei-templates/http1-desync.yaml)Plantilla de escaneo automatizado para Nuclei para detectar vulnerabilidades de desync HTTP/1 a gran escala.
# Instalar Nuclei (si aún no está instalado)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Copiar la plantilla al directorio de plantillas de Nuclei
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/
# Escanear un único objetivo
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml
# Escanear múltiples objetivos
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml
# Escanear con limitación de velocidad
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10
Todos los patrones de ataque se basan en los hallazgos de la investigación de James Kettle y técnicas de explotación probadas.
Fuente: Investigación de James Kettle "HTTP/1 Must Die" Explota discrepancias donde el proxy front-end ve un límite de solicitud mientras que el servidor back-end ve otro. El payload del ataque incrusta una solicitud oculta dentro de lo que parece ser datos de cabecera para el front-end, pero es interpretado como una solicitud separada por el back-end.
Ejemplo de la investigación: Utilizado para demostrar diferencias en el análisis sintáctico en los principales proveedores de CDN.
Fuente: Hallazgos de vulnerabilidades de James Kettle en IIS y T-Mobile
Aprovecha las diferentes interpretaciones de las cabeceras Content-Length: 0 entre servidores. Algunos servidores ignoran el cuerpo cuando CL=0, mientras que otros aún lo procesan, lo que lleva a confusión en los límites de las solicitudes.
Impacto en el mundo real: Explotado con éxito contra servidores IIS y la infraestructura de T-Mobile.
Fuente: Investigación de James Kettle sobre T-Mobile y LastPass
Explota el mecanismo Expect: 100-continue donde el front-end y el back-end manejan la continuación de manera diferente. Esto crea oportunidades para contrabandear solicitudes mientras el front-end espera una respuesta 100-continue.
Contexto de la investigación: Demostrado contra los sistemas de autenticación de T-Mobile y LastPass.
Fuente: Metodología avanzada de desync de James Kettle Encadena múltiples ataques de desync para envenenar la cola de respuestas, permitiendo a los atacantes controlar qué respuestas reciben otros usuarios. Esto representa uno de los ataques más sofisticados de la investigación.
Hallazgo crítico: Permite la toma completa del sitio al servir respuestas maliciosas a usuarios legítimos.
Fuente: Investigación central sobre ambigüedad HTTP/1.1 por James Kettle
Explota conflictos entre las cabeceras Content-Length y Transfer-Encoding: chunked. Diferentes servidores priorizan estas cabeceras de manera diferente, creando discrepancias en el análisis sintáctico que permiten el contrabando de solicitudes.
Fundamento: Estos conflictos representan la falla fundamental que James Kettle identificó en la especificación HTTP/1.1.
Basados en la metodología de investigación de James Kettle, las herramientas buscan: