
Rust-CLI, das HTTP-Methoden (einschließlich WebDAV- und DeltaV-Verben) gegen eine Ziel-URL prüft, um Verb-Tampering, Umgehungen der Zugriffskontrolle und unbeabsichtigte Methodenfreigabe aufzudecken.
Tool zur Durchführung von HTTP Verb Tampering. Es prüft HTTP-Methoden gegen eine Ziel-URL, um Fehlkonfigurationen, Umgehungen und unbeabsichtigte Methodenfreigaben aufzudecken.
Wenn hvt nicht Ihren Anforderungen entspricht, sehen Sie sich Folgendes an:
Einige Webserver und Proxys behandeln HTTP-Methoden inkonsistent. Ein Pfad, der bei GET 403 zurückgibt, könnte bei POST, PUT oder einer obskuren WebDAV-Methode 200 zurückgeben. hvt sendet jede von Ihnen gewählte Methode gegen ein Ziel und legt alles offen, was eine Untersuchung wert ist.
Erfordert eine Rust-Toolchain und einen C-Linker (gcc).
git clone <repo>
cd hmt
cargo build --release
./target/release/hvt --help
nix-shell # drops into a shell with cargo + gcc
cargo build --release
nix build # produces result/bin/hvt
nix run . -- -u https://example.com
nix develop # dev shell
Für Nix- oder NixOS-Nutzer ist ein Paket verfügbar. Beachten Sie, dass die neuesten Releases möglicherweise nur
im unstable-Kanal vorhanden sind.
$ nix-env -iA nixos.hvt
Führen Sie die Unit-Tests innerhalb der Nix-Dev-Shell aus (stellt gcc bereit, das von der ring-Abhängigkeit benötigt wird):
nix develop
cargo test
Oder führe sie vollständig über Nix aus, ohne eine Shell zu betreten:
nix flake check
nix flake check kompiliert das Projekt mit verfügbarem gcc und führt cargo test in einer sandboxed Build-Umgebung aus.
hvt -u <URL> [OPTIONS]
| Flag | Standard | Beschreibung |
|---|---|---|
-u, --url | (erforderlich) | Ziel-URL einschließlich Schema |
-t, --threads | 5 | Parallele Anfrage-Threads |
--all | - | Alle 53 bekannten Methoden testen (WebDAV, DeltaV usw.) |
--safe | - | Nur sichere Methoden testen: GET, HEAD, OPTIONS |
-m, --methods | - | Kommagetrennte benutzerdefinierte Methodenliste |
-w, --wordlist | - | Datei mit einer Methode pro Zeile (# für Kommentare) |
-s, --show | - | Nur diese Statuscodes anzeigen (kommagetrennt) |
-x, --hide | - | Diese Statuscodes ausblenden (kommagetrennt) |
-H, --header | - | Benutzerdefinierter Header, wiederholbar ("Name: Value") |
-c, --cookie | - | Cookie-Zeichenkette ("name=value; name2=value2") |
--proxy | - | Proxy-URL (http://... oder socks5://...) |
-k, --insecure | - | Ungültige/selbstsignierte TLS-Zertifikate akzeptieren |
-L, --follow-redirects | - | Weiterleitungen folgen (standardmäßig aus, um 3xx sichtbar zu machen) |
-T, --timeout | 10 | Timeout pro Anfrage in Sekunden |
-o, --output | - | Ergebnisse in einer Textdatei speichern |
-j, --json | - | Ergebnisse in eine JSON-Datei exportieren |
-q, --quiet | - | Banner und Infozeilen unterdrücken |
| Flag | Methoden |
|---|---|
| (Standard) | GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH |
--safe | GET HEAD OPTIONS |
--all | 53 Methoden - gängige + WebDAV (PROPFIND, MKCOL, COPY, MOVE, LOCK...), DeltaV (CHECKOUT, CHECKIN, MERGE...) und weitere (PURGE, SEARCH, SUBSCRIBE, REBIND...) |
Grundlegender Scan mit den standardmäßigen 9 Methoden:
hvt -u https://example.com/admin
Vollständiger Scan, 20 Threads, 405 ausblenden:
hvt -u https://example.com --all -t 20 -x 405
Benutzerdefinierte Methoden mit Auth-Header, JSON speichern:
hvt -u https://api.example.com/v1/users \
-m GET,POST,PUT,DELETE,PATCH \
-H "Authorization: Bearer <token>" \
-j results.json
Durch Burp Suite TLS-Fehler ignorieren:
hvt -u https://target.local/api -k --proxy http://127.0.0.1:8080
Wordlist-Modus, nur 2xx und 3xx anzeigen:
hvt -u https://example.com -w methods.txt -s 200,201,301,302
Stiller Modus für Piping:
hvt -u https://example.com -q -j - | jq '.results[] | select(.status < 300)'
Target : https://example.com
Methods : 9 (common)
Threads : 5
METHOD STATUS SIZE TIME INFO
──────────────────────────────────────────────────────────
GET 200 1256 B 42ms OK
HEAD 200 0 B 38ms OK
POST 405 312 B 41ms Method Not Allowed
PUT 405 312 B 40ms Method Not Allowed
DELETE 405 312 B 39ms Method Not Allowed
CONNECT 400 0 B 38ms Bad Request
OPTIONS 200 0 B 38ms OK Allow: GET, HEAD, OPTIONS
PATCH 405 312 B 39ms Method Not Allowed
Summary
Target : https://example.com
Tested : 9
Errors : 0
2xx : GET [200], HEAD [200], OPTIONS [200]
Nicht-GET/HEAD-Methoden, die 2xx oder 3xx zurückgeben, werden in der Zusammenfassung als potenziell interessant markiert.
MIT