Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
smugglefuzz — Un scanner rapide de contrebande par déclassement HTTP écrit en Go. | Kitploit
Outils/GitHubGitHub/moopinger/smugglefuzz
Scanners de VulnérabilitésExploitation d'Applications WebTests de Sécurité des APISécurité WebFuzzingTests d'Intrusion
GitHubmoopinger/smugglefuzz

smugglefuzz

Un scanner rapide de contrebande par déclassement HTTP écrit en Go.

Voir le dépôt
31328il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

made-with-Go go-report license

SmuggleFuzz

SmuggleFuzz, un scanner de smuggling par downgrade HTTP configurable et rapide. Permettant aux utilisateurs des listes de gadgets personnalisables, il offre des informations plus approfondies sur les raisons des échecs d'attaques de smuggling. Je suis convaincu que de nombreuses vulnérabilités de smuggling basées sur le downgrade HTTP restent non découvertes. Malheureusement, beaucoup arrêtent leur exploration après un scan superficiel. En utilisant SmuggleFuzz, vous pouvez découvrir des vulnérabilités de smuggling que d'autres pourraient négliger.

Pour plus d'informations, voir https://moopinger.github.io/blog/smugglefuzz/fuzzing/smuggling/2024/01/31/SmuggleFuzz.html

Installation

Téléchargez une copie depuis la page des releases : https://github.com/Moopinger/smugglefuzz/releases

Ou, construisez-le vous-même :

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

Autre :

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

Utilisation

Il existe trois commandes pour 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               Activez ce flag pour envoyer une confirmation à la cible lorsqu'un timeout est rencontré. Aide à confirmer si la cible est vulnérable.
  -d, --data string           Trame de données HTTP/2 à envoyer. ex : 99\r\n (par défaut "99\r\n")
      --dc                    Désactive la couleur dans la sortie. Utile lorsque vous souhaitez sauvegarder la sortie dans un fichier.
  -f, --file string           Un fichier contenant plusieurs cibles au format url. Une cible par ligne.
      --filter string         Filtrer les réponses par chaîne ou type de trame, etc. Par exemple : 405, 200, 502, TIMEOUT, RST, GOAWAY, etc.
  -H, --header string         Insérer un en-tête personnalisé. Il doit être fourni au format d'en-tête habituel : "Cookie: date=...; session=...;"
  -h, --help                  aide pour scan
  -i, --interval int          L'intervalle de timeout en secondes. (par défaut 5)
  -x, --method string         La méthode de requête HTTP à utiliser. (par défaut "POST")
  -s, --save-success string   Si une requête est confirmée comme réussie (via le flag --confirm), elle sera sauvegardée dans un fichier. Utile lorsque vous avez beaucoup de cibles.
  -t, --threads int           Le nombre de threads à exécuter. Smugglefuzz peut aller vite, donc définissez le nombre souhaité. Cependant, un nombre trop élevé peut perturber les WAF. (par défaut 4)
  -u, --url string            L'URL cible à scanner.
  -w, --wordlist string       Fournissez une liste personnalisée de gadgets à utiliser. Si non fournie, la liste par défaut sera utilisée.

  • 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   En-tête d'attaque, séparé par (; ) comme la wordlist en mode 'scan'.
  -d, --data string     Contenu de la trame de données HTTP/2 à envoyer. (par défaut "99\r\n")
      --dc              Désactive la couleur dans la sortie.
  -H, --header string   Insérer un en-tête personnalisé. ex "Cookie: values"
  -h, --help            aide pour request
  -i, --interval int    Intervalle de timeout de détection en secondes. (par défaut 5)
  -x, --method string   La méthode à utiliser. (par défaut "POST")
  -u, --url string      L'URL cible à laquelle soumettre la requête.

  • output

Ceci affichera simplement les gadgets de smuggling par défaut. Actuellement, la confirmation intégrée ne fonctionne que pour H2.CL et H2.TE. Mais il est toujours possible de détecter les attaques H2.0 via des timeouts (–filter TIMEOUT) ou OAST sur un de vos domaines. (Voir la section sur les pseudo-en-têtes ci-dessous)

Wordlist

SmuggleFuzz permet aux utilisateurs un contrôle total sur les requêtes via des wordlists personnalisées. Ces listes ont une structure de base, qui doit être suivie pour un traitement optimal des requêtes. Par exemple, les en-têtes et leurs valeurs sont séparés par un point-virgule et un espace (; ) au lieu du deux-points habituel, facilitant l'inclusion de valeurs avec deux-points dans les requêtes de smuggling. Cela ouvre également des possibilités pour diverses mutations et approches créatives. Pour des conseils détaillés sur la création de vos propres payloads, référez-vous à : Recherche HTTP/2 de James Kettle.

L'outil inclut une liste prête à l'emploi de 125 gadgets de smuggling, bien qu'il y ait toujours de la place pour l'expansion. Ces gadgets peuvent être affichés en utilisant la commande 'output', fournissant des informations sur la structuration des requêtes. Les utilisateurs peuvent lancer des scans avec des wordlists personnalisées en utilisant le flag 'w'. La liste supporte l'encodage URL (%00) pour les valeurs d'octets non imprimables, comme le retour chariot et le saut de ligne représentés par '%0d%0a' ou '\r\n'. Bien que la liste fournie soit complète, la création de vos propres gadgets peut augmenter considérablement les taux de réussite.

H2C

Besoin du support h2c ? Consultez la branche "experimental-h2c" de SmuggleFuzz.

Pseudo headers

Les pseudo en-têtes sont entièrement supportés et peuvent être personnalisés en utilisant la syntaxe ":name" :

  • :authority
  • :scheme
  • :method

Ces en-têtes sont particulièrement utiles lors des tests de vecteurs d'attaque H2.0. Par exemple, lors des tests de smuggling H2.0 utilisant des méthodes basées sur OAST, des entrées de wordlist comme les suivantes peuvent être efficaces :

À partir de v0.1.8, [HOSTNAME] peut être utilisé comme espace réservé. SmuggleFuzz le remplacera par le nom d'hôte au moment de l'exécution.

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

ou

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

Détection

La méthode de détection employée dans SmuggleFuzz est similaire à celles utilisées par Albinowax dans ses recherches sur le smuggling HTTP/1 et par le Smuggler de defparam, avec des adaptations pour HTTP/2. Heureusement, comme ces attaques impliquent des downgrades, le même corps de requête/payload DATA peut être utilisé pour la détection H2.CL et H2.TE.

Une directive cruciale pour les wordlists est que les en-têtes smuggled avec succès doivent inclure les valeurs suivantes pour une attaque de confirmation :

root@kitploit:~
CL: 13
TE: chunked

Chaque requête incorpore un "Body"/DATA-Frame avec la valeur "99\r\n". Si un en-tête TE est smuggled, il est interprété comme une longueur de contenu chunked de 153 (0x99) par le serveur s'il est smuggled avec succès, entraînant un timeout. De même, smuggler un en-tête CL avec une longueur de contenu de 13 entraîne également un timeout en raison d'une longueur non satisfaite.

La requête de confirmation soumet à nouveau la même requête qui a conduit au timeout, mais avec Data: "3\r\nABC\r\n0\r\n\r\n". Cela satisfait à la fois un TE chunked et un CL de 13, provoquant une réponse réussie et indiquant potentiellement une vulnérabilité de smuggling.

Remerciements

(Sans ces personnes et projets, cela n'existerait pas)

  • James Kettle
  • Emile Lerner
  • golang.org/x/net/http2
  • golang.org/x/net/http2/hpack
  • github.com/spf13/cobra
  • GoReleaser
Télécharger l’outil