Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
smugglefuzz — Ein schneller HTTP-Downgrade-Schmuggel-Scanner, geschrieben in Go. | Kitploit
Tools/GitHubGitHub/moopinger/smugglefuzz
SchwachstellenscannerWebanwendungs-ExploitationAPI-SicherheitstestsWebsicherheitFuzzingPenetrationstests
GitHubmoopinger/smugglefuzz

smugglefuzz

Ein schneller HTTP-Downgrade-Schmuggel-Scanner, geschrieben in Go.

Repository anzeigen
31328vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

made-with-Go go-report license

SmuggleFuzz

SmuggleFuzz, ein konfigurierbarer und schneller Scanner für HTTP-Downgrade-Smuggling. Es befähigt Benutzer mit anpassbaren Gadget-Listen und bietet tiefere Einblicke in die Gründe für fehlgeschlagene Smuggling-Angriffe. Ich bin überzeugt, dass zahlreiche auf HTTP-Downgrade basierende Smuggling-Schwachstellen noch unentdeckt sind. Leider brechen viele ihre Erkundung nach einer oberflächlichen Überprüfung ab. Mit SmuggleFuzz können Sie Smuggling-Schwachstellen aufdecken, die andere übersehen.

Weitere Informationen finden Sie unter https://moopinger.github.io/blog/smugglefuzz/fuzzing/smuggling/2024/01/31/SmuggleFuzz.html

Installation

Laden Sie eine Kopie von der Releases-Seite herunter: https://github.com/Moopinger/smugglefuzz/releases

Oder bauen Sie es selbst:

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

Oder so:

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

Verwendung

Es gibt drei Befehle für 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

Dadurch werden die Standard-Smuggle-Gadgets ausgegeben. Derzeit funktioniert die integrierte Bestätigung nur für H2.CL und H2.TE. Dennoch ist es möglich, H2.0-Angriffe über Timeouts (–filter TIMEOUT) oder OAST auf einer Ihrer Domains zu erkennen. (Siehe den Abschnitt zu Pseudo-Headern weiter unten)

Wortliste

SmuggleFuzz ermöglicht Benutzern die vollständige Kontrolle über Anfragen durch benutzerdefinierte Wortlisten. Diese Listen haben eine grundlegende Struktur, die für eine optimale Anfrageverarbeitung eingehalten werden sollte. Beispielsweise werden Header und ihre Werte durch ein Semikolon und ein Leerzeichen (; ) getrennt – anstelle des üblichen Doppelpunkts –, um die Einbindung von Doppelpunktwerten in Smuggling-Anfragen zu erleichtern. Dies eröffnet auch Möglichkeiten für verschiedene Mutationen und kreative Ansätze. Eine ausführliche Anleitung zur Erstellung eigener Payloads finden Sie unter: James Kettle's HTTP/2 Research.

Das Tool enthält eine einsatzbereite Liste von 125 Smuggling-Gadgets, aber es gibt immer Raum für Erweiterungen. Diese Gadgets können mit dem Befehl 'output' angezeigt werden, was Einblicke in die Abfragestruktur gibt. Benutzer können Scans mit benutzerdefinierten Wortlisten über das Flag 'w' ausführen. Die Liste unterstützt URL-Kodierung (%00) für nicht druckbare Byte-Werte, wie Carriage Return und Line Feed, dargestellt als '%0d%0a' oder '\r\n'. Obwohl die mitgelieferte Liste umfassend ist, kann das Erstellen eigener Gadgets die Erfolgsrate erheblich steigern.

H2C

Benötigen Sie h2c-Unterstützung? Schauen Sie sich den Branch "experimental-h2c" von SmuggleFuzz an.

Pseudo-Header

Pseudo-Header werden vollständig unterstützt und können mit der Syntax ":name" angepasst werden:

  • :authority
  • :scheme
  • :method

Diese Header sind besonders nützlich beim Testen von H2.0-Angriffsvektoren. Beispielsweise können bei H2.0-Smuggling mit OAST-basierten Methoden Wortlisteneinträge wie die folgenden effektiv sein:

Ab v0.1.8 kann [HOSTNAME] als Platzhalter verwendet werden. SmuggleFuzz ersetzt diesen zur Laufzeit durch den Hostnamen.

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

oder

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

Erkennung

Die in SmuggleFuzz verwendete Erkennungsmethode ähnelt der von Albinowax in seiner HTTP/1-Smuggling-Forschung und defparams Smuggler, jedoch mit Anpassungen für HTTP/2. Glücklicherweise kann bei diesen Angriffen, da es sich um Downgrades handelt, der gleiche Anforderungstext/DATA-Payload sowohl für H2.CL- als auch für H2.TE-Erkennung verwendet werden.

Eine wichtige Richtlinie für Wortlisten ist, dass erfolgreich eingeschleuste Header die folgenden Werte für einen bestätigenden Angriff enthalten sollten:

root@kitploit:~
CL: 13
TE: chunked

Jede Anfrage enthält einen "Body"/DATA-Frame mit dem Wert "99\r\n". Wenn ein TE-Header eingeschleust wird, wird er vom Server bei erfolgreicher Einschleusung als Chunked-Content-Länge von 153 (0x99) interpretiert, was zu einem Timeout führt. Ebenso führt das Einschleusen eines CL-Headers mit einer Content-Länge von 13 zu einem Timeout aufgrund der nicht erfüllten Länge.

Der Bestätigungsangriff sendet erneut dieselbe Abfrage, die zum Timeout geführt hat, jedoch mit Data: "3\r\nABC\r\n0\r\n\r\n". Dies erfüllt sowohl ein Chunked-TE als auch ein CL von 13, löst eine erfolgreiche Antwort aus und deutet möglicherweise auf eine Smuggling-Schwachstelle hin.

Dank (Ohne diese Personen und Projekte gäbe es dies nicht)

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