
Rust CLI जो किसी लक्ष्य URL के विरुद्ध HTTP विधियों (WebDAV और DeltaV क्रियाओं सहित) की जाँच करती है ताकि verb tampering, access-control bypass और अनपेक्षित method exposure का पता चल सके।
HTTP Verb Tampering करने के लिए भी। यह किसी लक्ष्य URL के विरुद्ध HTTP विधियों की जाँच करता है ताकि गलत कॉन्फ़िगरेशन, बायपास और अनपेक्षित विधि एक्सपोज़र का पता लगाया जा सके।
यदि hvt आपकी आवश्यकता के अनुरूप नहीं है, तो इन्हें देखें:
कुछ वेब सर्वर और प्रॉक्सी HTTP विधियों को असंगत रूप से संभालते हैं। कोई पथ जो GET पर 403 लौटाता है, वह POST, PUT या किसी अस्पष्ट WebDAV विधि पर 200 लौटा सकता है। hvt आपके द्वारा चुनी गई प्रत्येक विधि को किसी लक्ष्य के विरुद्ध भेजता है और जाँच के योग्य किसी भी चीज़ को सामने लाता है।
Rust टूलचेन और एक 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
Nix या NixOS उपयोगकर्ताओं के लिए एक पैकेज उपलब्ध है। ध्यान रखें कि नवीनतम रिलीज़ केवल
unstable चैनल में ही उपलब्ध हो सकती हैं।
$ nix-env -iA nixos.hvt
Nix dev shell के अंदर यूनिट टेस्ट चलाएँ (ring निर्भरता के लिए आवश्यक gcc प्रदान करता है):
nix develop
cargo test
या उन्हें शेल में प्रवेश किए बिना पूरी तरह से Nix के माध्यम से चलाएं:
nix flake check
nix flake check प्रोजेक्ट को gcc उपलब्ध होने के साथ कंपाइल करता है और सैंडबॉक्स किए गए बिल्ड वातावरण में cargo test निष्पादित करता है।
hvt -u <URL> [OPTIONS]
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
-u, --url | (आवश्यक) | लक्ष्य URL जिसमें स्कीम शामिल हो |
-t, --threads | 5 | समवर्ती अनुरोध थ्रेड्स |
--all | - | सभी 53 ज्ञात विधियों का परीक्षण करें (WebDAV, DeltaV, आदि) |
--safe | - | केवल सुरक्षित विधियों का परीक्षण करें: GET, HEAD, OPTIONS |
-m, --methods | - | कॉमा-सेपरेटेड कस्टम विधि सूची |
-w, --wordlist | - | प्रति पंक्ति एक विधि वाली फ़ाइल (# टिप्पणियों के लिए) |
-s, --show | - | केवल ये स्टेटस कोड दिखाएं (कॉमा-सेपरेटेड) |
-x, --hide | - | इन स्टेटस कोड को छिपाएं (कॉमा-सेपरेटेड) |
-H, --header | - | कस्टम हेडर, दोहराने योग्य ("Name: Value") |
-c, --cookie | - | कुकी स्ट्रिंग ("name=value; name2=value2") |
--proxy | - | प्रॉक्सी URL (http://... या socks5://...) |
-k, --insecure | - | अमान्य/स्व-हस्ताक्षरित TLS प्रमाणपत्र स्वीकार करें |
-L, --follow-redirects | - | रीडायरेक्ट का पालन करें (3xx को उजागर करने के लिए डिफ़ॉल्ट रूप से बंद) |
-T, --timeout | 10 | प्रति-अनुरोध टाइमआउट सेकंड में |
-o, --output | - | परिणामों को टेक्स्ट फ़ाइल में सहेजें |
-j, --json | - | परिणामों को JSON फ़ाइल में निर्यात करें |
-q, --quiet | - | बैनर और जानकारी पंक्तियों को दबाएं |
| फ़्लैग | विधियाँ |
|---|---|
| (डिफ़ॉल्ट) | GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH |
--safe | GET HEAD OPTIONS |
--all | 53 विधियाँ - सामान्य + WebDAV (PROPFIND, MKCOL, COPY, MOVE, LOCK...), DeltaV (CHECKOUT, CHECKIN, MERGE...), और अन्य (PURGE, SEARCH, SUBSCRIBE, REBIND...) |
डिफ़ॉल्ट 9 विधियों के साथ बुनियादी स्कैन:
hvt -u https://example.com/admin
पूर्ण स्कैन, 20 थ्रेड्स, 405 छिपाएँ:
hvt -u https://example.com --all -t 20 -x 405
कस्टम विधियाँ auth हेडर के साथ, JSON सहेजें:
hvt -u https://api.example.com/v1/users \
-m GET,POST,PUT,DELETE,PATCH \
-H "Authorization: Bearer <token>" \
-j results.json
Burp Suite के माध्यम से, TLS त्रुटियों को अनदेखा करें:
hvt -u https://target.local/api -k --proxy http://127.0.0.1:8080
वर्डलिस्ट मोड, केवल 2xx और 3xx दिखाएँ:
hvt -u https://example.com -w methods.txt -s 200,201,301,302
पाइपिंग के लिए शांत मोड:
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]
जो Non-GET/HEAD विधियाँ 2xx या 3xx लौटाती हैं, उन्हें सारांश में संभावित रूप से रोचक के रूप में चिह्नित किया जाता है।
MIT