Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
smugglefuzz — Un rapido scanner per HTTP downgrade smuggling scritto in Go. | Kitploit
Strumenti/GitHubGitHub/moopinger/smugglefuzz
Scanner di VulnerabilitàSfruttamento di Applicazioni WebTest di Sicurezza delle APISicurezza WebFuzzingPenetration Testing
GitHubmoopinger/smugglefuzz

smugglefuzz

Un rapido scanner per HTTP downgrade smuggling scritto in Go.

Vedi Repository
313282 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

made-with-Go go-report license

SmuggleFuzz

SmuggleFuzz, uno scanner di smuggling HTTP di downgrade configurabile e rapido. Consente agli utenti di personalizzare le liste di gadget, offrendo approfondimenti sulle cause degli attacchi di smuggling falliti. Sono convinto che molte vulnerabilità di smuggling basate su downgrade HTTP rimangano ancora scoperte. Sfortunatamente, molti individui interrompono la loro esplorazione dopo una scansione superficiale. Usando SmuggleFuzz, puoi scoprire vulnerabilità di smuggling che altri potrebbero trascurare.

Per maggiori informazioni vedi https://moopinger.github.io/blog/smugglefuzz/fuzzing/smuggling/2024/01/31/SmuggleFuzz.html

Installazione

Scarica una copia dalla pagina delle release: https://github.com/Moopinger/smugglefuzz/releases

Oppure, compilalo tu stesso:

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

Un altro modo:

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

Utilizzo

Ci sono tre comandi per 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

	//Multiple targets? just use -f instead of -u and provide a file with the targets in it:

	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               Enable this flag to send a confirmation to the target when a timeout is encountered. Helps confirm if the target is vulnerable.
  -d, --data string           HTTP/2 Data frame to send. eg: 99\r\n (default "99\r\n")
      --dc                    Disable colour in the output. This is useful when you want to save the output to a file.
  -f, --file string           A file containing multiple targets in url format. One target per line.
      --filter string         Filter responses by string or frame type, etc. For example: 405, 200, 502, TIMEOUT, RST, GOAWAY, etc.
  -H, --header string         Insert a custom header. It should be provided in the regular header format: "Cookie: date=...; session=...;"
  -h, --help                  help for scan
  -i, --interval int          The timeout interval in seconds. (default 5)
  -x, --method string         The HTTP request method to be used. (default "POST")
  -s, --save-success string   If a request is confirmed to be successful (via the --confirm flag), it will be saved to a file. This is useful when dealing with lots of targets.
  -t, --threads int           The number of threads to run. Smugglefuzz can go fast, so set the desired number. However, too many may upset any WAFs. (default 4)
  -u, --url string            The target URL to be scanned.
  -w, --wordlist string       Provide a custom list of gadgets to use. If not provided, the default list will be used.

  • 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   Attack Header, separated by (; ) like the wordlist in 'scan' mode.
  -d, --data string     HTTP/2 Data frame content to send. (default "99\r\n")
      --dc              Disable colour in the output.
  -H, --header string   Insert custom header. eg "Cookie: values"
  -h, --help            help for request
  -i, --interval int    Detection timeout interval in seconds. (default 5)
  -x, --method string   The method to use. (default "POST")
  -u, --url string      The target URL to submit the request to.

  • output

Questo comando si limita a mostrare i gadget predefiniti di smuggle. Attualmente la conferma integrata funziona solo per H2.CL e H2.TE. Ma è comunque possibile rilevare attacchi H2.0 tramite timeout (–filter TIMEOUT) o OAST su un tuo dominio. (Vedi la sezione sugli pseudo-header più avanti)

Liste di parole

SmuggleFuzz permette agli utenti il controllo completo sulle richieste tramite liste di parole personalizzate. Queste liste hanno una struttura di base da seguire per una gestione ottimale delle richieste. Ad esempio, le intestazioni e i loro valori vengono separati usando un punto e virgola e uno spazio (; ) invece del solito colon, facilitando l'inclusione di valori con due punti nelle richieste di smuggling. Questo apre anche possibilità per varie mutazioni e approcci creativi. Per una guida dettagliata sulla creazione dei tuoi payload, consulta: Ricerca HTTP/2 di James Kettle.

Lo strumento include una lista pronta all'uso di 125 gadget di smuggling, anche se c'è sempre spazio per espansioni. Questi gadget possono essere visualizzati usando il comando 'output', fornendo informazioni sulla struttura delle query. Gli utenti possono eseguire scansioni con liste di parole personalizzate usando il flag 'w'. La lista supporta la codifica URL (%00) per valori di byte non stampabili, come il ritorno a capo e l'avanzamento riga rappresentati come '%0d%0a' o '\r\n'. Sebbene la lista fornita sia completa, creare i propri gadget può aumentare significativamente il tasso di successo.

H2C

Hai bisogno del supporto h2c? Dai un'occhiata al ramo "experimental-h2c" di SmuggleFuzz.

Pseudo-header

Gli pseudo-header sono completamente supportati e possono essere personalizzati usando la sintassi ":name":

  • :authority
  • :scheme
  • :method

Queste intestazioni sono particolarmente utili quando si testano vettori di attacco H2.0. Ad esempio, nel testare lo smuggling H2.0 usando metodi basati su OAST, le voci della lista di parole come le seguenti possono essere efficaci:

A partire da v0.1.8, [HOSTNAME] può essere usato come segnaposto. SmuggleFuzz lo sostituirà con il nome host in fase di esecuzione.

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

oppure

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

Rilevamento

Il metodo di rilevamento impiegato in SmuggleFuzz è simile a quelli usati da Albinowax nella sua ricerca sullo smuggling HTTP/1 e da defparam con Smuggler, sebbene con adattamenti per HTTP/2. Fortunatamente, poiché questi attacchi coinvolgono downgrade, lo stesso corpo della richiesta/payload DATA può essere utilizzato sia per il rilevamento H2.CL che H2.TE.

Una linea guida cruciale per le liste di parole è che le intestazioni contrabbandate con successo dovrebbero includere i seguenti valori per un attacco di conferma:

root@kitploit:~
CL: 13
TE: chunked

Ogni richiesta include un "Body"/DATA-Frame con il valore "99\r\n". Se un'intestazione TE viene contrabbandata, viene interpretata come una lunghezza del contenuto chunked di 153 (0x99) dal server se contrabbandata con successo, portando a un timeout. Allo stesso modo, contrabbandare un'intestazione CL con una lunghezza del contenuto di 13 causa anche un timeout a causa della lunghezza non soddisfatta.

La richiesta di conferma invia di nuovo la stessa query che ha portato al timeout, ma con Data: "3\r\nABC\r\n0\r\n\r\n". Questo soddisfa sia un TE chunked che un CL di 13, ottenendo una risposta di successo e potenzialmente indicando una vulnerabilità di smuggling.

Ringraziamenti (Senza queste persone e progetti questo non esisterebbe)

  • James Kettle
  • Emile Lerner
  • golang.org/x/net/http2
  • golang.org/x/net/http2/hpack
  • github.com/spf13/cobra
  • GoReleaser
Scarica lo strumento