
CLI Rust qui sonde les méthodes HTTP (y compris les verbes WebDAV et DeltaV) sur une URL cible afin de révéler la falsification de verbes, les contournements de contrôle d'accès et l'exposition involontaire de méthodes.
Outil pour réaliser du HTTP Verb Tampering. Il teste les méthodes HTTP contre une URL cible afin de révéler les mauvaises configurations, les contournements et l'exposition involontaire de méthodes.
Si hvt ne répond pas à vos besoins, consultez ceux-ci :
Certains serveurs web et proxys traitent les méthodes HTTP de manière incohérente. Un chemin qui renvoie 403 sur GET peut renvoyer 200 sur POST, PUT ou une méthode WebDAV obscure. hvt envoie chaque méthode que vous choisissez contre une cible et met en évidence tout ce qui mérite une investigation.
Nécessite une toolchain Rust et un éditeur de liens C (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
Pour les utilisateurs de Nix ou NixOS, un paquet est disponible. Gardez à l'esprit que les dernières versions peuvent n'être présentes que dans le canal unstable.
$ nix-env -iA nixos.hvt
Exécutez les tests unitaires dans le shell de développement Nix (fournit gcc requis par la dépendance ring) :
nix develop
cargo test
Ou exécutez-les entièrement via Nix sans entrer dans un shell :
nix flake check
nix flake check compile le projet avec gcc disponible et exécute cargo test dans un environnement de build isolé.
hvt -u <URL> [OPTIONS]
| Flag | Défaut | Description |
|---|---|---|
-u, --url | (requis) | URL cible incluant le schéma |
-t, --threads | 5 | Threads de requêtes simultanées |
--all | - | Tester les 53 méthodes connues (WebDAV, DeltaV, etc.) |
--safe | - | Tester uniquement les méthodes sûres : GET, HEAD, OPTIONS |
-m, --methods | - | Liste personnalisée de méthodes séparées par des virgules |
-w, --wordlist | - | Fichier avec une méthode par ligne (# pour les commentaires) |
-s, --show | - | Afficher uniquement ces codes de statut (séparés par des virgules) |
-x, --hide | - | Masquer ces codes de statut (séparés par des virgules) |
-H, --header | - | En-tête personnalisé, répétable ("Name: Value") |
-c, --cookie | - | Chaîne de cookie ("name=value; name2=value2") |
--proxy | - | URL du proxy (http://... ou socks5://...) |
-k, --insecure | - | Accepter les certificats TLS invalides/auto-signés |
-L, --follow-redirects | - | Suivre les redirections (désactivé par défaut pour révéler les 3xx) |
-T, --timeout | 10 | Délai d'expiration par requête en secondes |
-o, --output | - | Enregistrer les résultats dans un fichier texte |
-j, --json | - | Exporter les résultats dans un fichier JSON |
-q, --quiet | - | Supprimer la bannière et les lignes d'information |
| Flag | Méthodes |
|---|---|
| (par défaut) | GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH |
--safe | GET HEAD OPTIONS |
--all | 53 méthodes - courantes + WebDAV (PROPFIND, MKCOL, COPY, MOVE, LOCK...), DeltaV (CHECKOUT, CHECKIN, MERGE...), et autres (PURGE, SEARCH, SUBSCRIBE, REBIND...) |
Scan de base avec les 9 méthodes par défaut :
hvt -u https://example.com/admin
Analyse complète, 20 threads, masquer les 405 :
hvt -u https://example.com --all -t 20 -x 405
Méthodes personnalisées avec en-tête d'authentification, enregistrement JSON :
hvt -u https://api.example.com/v1/users \
-m GET,POST,PUT,DELETE,PATCH \
-H "Authorization: Bearer <token>" \
-j results.json
Via Burp Suite, ignorez les erreurs TLS :
hvt -u https://target.local/api -k --proxy http://127.0.0.1:8080
Mode liste de mots, afficher uniquement les 2xx et 3xx :
hvt -u https://example.com -w methods.txt -s 200,201,301,302
Mode silencieux pour le 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]
Les méthodes non-GET/HEAD qui renvoient un code 2xx ou 3xx sont signalées dans le résumé comme potentiellement intéressantes.
MIT