Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
smugglefuzz — Un escáner rápido de contrabando de degradación HTTP escrito en Go. | Kitploit
Herramientas/GitHubGitHub/moopinger/smugglefuzz
Escáneres de VulnerabilidadesExplotación de Aplicaciones WebPruebas de Seguridad de APIsSeguridad WebFuzzingPruebas de Penetración
GitHubmoopinger/smugglefuzz

smugglefuzz

Un escáner rápido de contrabando de degradación HTTP escrito en Go.

Ver Repositorio
31328hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

made-with-Go go-report license

SmuggleFuzz

SmuggleFuzz, un escáner de contrabando de degradación HTTP configurable y rápido. Permite a los usuarios personalizar listas de gadgets, ofreciendo una comprensión más profunda de las razones detrás de los fallos en ataques de contrabando. Estoy convencido de que numerosas vulnerabilidades de contrabando basadas en degradación HTTP permanecen sin descubrir. Desafortunadamente, muchas personas detienen su exploración después de un escaneo superficial. Al usar SmuggleFuzz, puedes descubrir vulnerabilidades de contrabando que otros podrían pasar por alto.

Para más información, visita https://moopinger.github.io/blog/smugglefuzz/fuzzing/smuggling/2024/01/31/SmuggleFuzz.html

Instalación

Descarga una copia desde la página de lanzamientos: https://github.com/Moopinger/smugglefuzz/releases

O, compílalo tú mismo:

root@kitploit:~
go install github.com/moopinger/smugglefuzz@latest

Otro método:

root@kitploit:~
git clone https://github.com/moopinger/smugglefuzz.git
cd smugglefuzz
go build .
./smugglefuzz

Uso

Hay tres comandos para SmuggleFuzz:

  • scan
root@kitploit:~

Usage:
  smugglefuzz scan [flags]

Examples:
	smugglefuzz scan -u https://example.com/ --confirm
	smugglefuzz scan -u https://example.com/ --filter TIMEOUT --confirm
	smugglefuzz scan -u https://example.com/ -w wordlist.txt -t 10 --confirm --filter TIMEOUT
	smugglefuzz scan --dc -u https://example.com/ -w wordlist.txt -x PUT --confirm

	//¿Múltiples objetivos? Solo usa -f en lugar de -u y proporciona un archivo con los objetivos:

	smugglefuzz scan -f multiple_targets.txt --confirm -t 10 
	smugglefuzz scan -f multiple_targets.txt -w wordlist.txt --confirm -s ./save-success.txt --filter TIMEOUT
	smugglefuzz scan -f multiple_targets.txt -w wordlist.txt -H "Cookie: date=...; session=...;" -s ./save-success.txt -x PUT --filter TIMEOUT

Flags:
  -c, --confirm               Activa esta bandera para enviar una confirmación al objetivo cuando se encuentre un tiempo de espera. Ayuda a confirmar si el objetivo es vulnerable.
  -d, --data string           Trama de datos HTTP/2 a enviar. Ej: 99\r\n (predeterminado "99\r\n")
      --dc                    Desactiva el color en la salida. Esto es útil cuando deseas guardar la salida en un archivo.
  -f, --file string           Un archivo que contiene múltiples objetivos en formato URL. Un objetivo por línea.
      --filter string         Filtra respuestas por cadena o tipo de trama, etc. Por ejemplo: 405, 200, 502, TIMEOUT, RST, GOAWAY, etc.
  -H, --header string         Inserta una cabecera personalizada. Debe proporcionarse en el formato de cabecera habitual: "Cookie: date=...; session=...;"
  -h, --help                  ayuda para scan
  -i, --interval int          Intervalo de tiempo de espera en segundos. (predeterminado 5)
  -x, --method string         Método de solicitud HTTP a utilizar. (predeterminado "POST")
  -s, --save-success string   Si una solicitud se confirma como exitosa (mediante la bandera --confirm), se guardará en un archivo. Esto es útil cuando se manejan muchos objetivos.
  -t, --threads int           Número de hilos a ejecutar. Smugglefuzz puede ir rápido, así que establece el número deseado. Sin embargo, demasiados pueden molestar a cualquier WAF. (predeterminado 4)
  -u, --url string            URL del objetivo a escanear.
  -w, --wordlist string       Proporciona una lista personalizada de gadgets a usar. Si no se proporciona, se usará la lista predeterminada.

  • request
root@kitploit:~

Usage:
  smugglefuzz request [flags]

Examples:
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13"
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -x PUT
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -H "Cookie: date=...; session=...;" --data "223\r\n"

Flags:
  -a, --attack string   Cabecera de ataque, separada por (; ) como la lista de palabras en modo 'scan'.
  -d, --data string     Contenido de la trama de datos HTTP/2 a enviar. (predeterminado "99\r\n")
      --dc              Desactiva el color en la salida.
  -H, --header string   Inserta cabecera personalizada. Ej: "Cookie: valores"
  -h, --help            ayuda para request
  -i, --interval int    Intervalo de tiempo de espera de detección en segundos. (predeterminado 5)
  -x, --method string   Método a usar. (predeterminado "POST")
  -u, --url string      URL del objetivo al que enviar la solicitud.

  • output

Esto simplemente mostrará los gadgets de contrabando predeterminados. Actualmente, la confirmación incorporada solo funciona para H2.CL y H2.TE. Pero aún es posible detectar ataques H2.0 mediante tiempos de espera (–filter TIMEOUT) o OAST en un dominio propio. (Consulta la sección de pseudo-cabeceras a continuación)

Lista de palabras

SmuggleFuzz permite a los usuarios un control total sobre las solicitudes mediante listas de palabras personalizadas. Estas listas tienen una estructura básica que debe seguirse para un manejo óptimo de las solicitudes. Por ejemplo, las cabeceras y sus valores se dividen usando un punto y coma y un espacio (; ) en lugar del colon habitual, lo que facilita la inclusión de valores con colon en las solicitudes de contrabando. Esto también abre posibilidades para diversas mutaciones y enfoques creativos. Para obtener una guía detallada sobre cómo crear tus propios payloads, consulta: Investigación HTTP/2 de James Kettle.

La herramienta incluye una lista lista para usar de 125 gadgets de contrabando, aunque siempre hay margen para expandirla. Estos gadgets se pueden mostrar usando el comando 'output', lo que proporciona información sobre cómo estructurar las consultas. Los usuarios pueden ejecutar escaneos con listas de palabras personalizadas usando la bandera 'w'. La lista admite codificación URL (%00) para valores de byte no imprimibles, como retorno de carro y salto de línea representados como '%0d%0a' o '\r\n'. Si bien la lista proporcionada es completa, crear tus propios gadgets puede aumentar significativamente la tasa de éxito.

H2C

¿Necesitas soporte h2c? Consulta la rama "experimental-h2c" de SmuggleFuzz.

Pseudo-cabeceras

Las pseudo-cabeceras son totalmente compatibles y se pueden personalizar usando la sintaxis ":nombre":

  • :authority
  • :scheme
  • :method

Estas cabeceras son particularmente útiles al probar vectores de ataque H2.0. Por ejemplo, al probar contrabando H2.0 usando métodos basados en OAST, entradas de lista de palabras como las siguientes pueden ser efectivas:

A partir de v0.1.8, se puede usar [HOSTNAME] como marcador de posición. SmuggleFuzz lo reemplazará con el nombre de host en tiempo de ejecución.

  • :authority; [HOSTNAME]\r\n\r\nGET / HTTP/1.1\r\nHost: uniqid.oastify.com\r\nX-HEADER:%20

o

  • :authority; [HOSTNAME]\r\n\r\nGET https://uniqid.oastify.com/ HTTP/1.1\r\nHost: [HOSTNAME]\r\nX-HEADER:%20

Detección

El método de detección empleado en SmuggleFuzz es similar al utilizado por Albinowax en su investigación de contrabando HTTP/1 y por defparam en Smuggler, aunque adaptado para HTTP/2. Afortunadamente, como estos ataques implican degradaciones, se puede utilizar el mismo cuerpo de solicitud/payload DATA tanto para la detección de H2.CL como de H2.TE.

Una pauta crucial para las listas de palabras es que las cabeceras contrabandeadas exitosamente deben incluir los siguientes valores para un ataque de confirmación:

root@kitploit:~
CL: 13
TE: chunked

Cada solicitud incluye un "Cuerpo"/DATA-Frame con el valor "99\r\n". Si se introduce de contrabando una cabecera TE, el servidor la interpreta como una longitud de contenido fragmentada de 153 (0x99) si el contrabando tiene éxito, lo que provoca un tiempo de espera. De manera similar, introducir de contrabando una cabecera CL con una longitud de contenido de 13 también resulta en un tiempo de espera debido a una longitud insatisfecha.

La solicitud de confirmación reenvía la misma consulta que provocó el tiempo de espera, pero con Datos: "3\r\nABC\r\n0\r\n\r\n". Esto satisface tanto un TE fragmentado como un CL de 13, generando una respuesta exitosa y potencialmente indicando una vulnerabilidad de contrabando.

Agradecimientos (Sin estas personas y proyectos esto no existiría)

  • James Kettle
  • Emile Lerner
  • golang.org/x/net/http2
  • golang.org/x/net/http2/hpack
  • github.com/spf13/cobra
  • GoReleaser
Descargar herramienta