
अधिकृत सुरक्षा परीक्षण के लिए तेज़ HTTP पैरामीटर खोज

बग बाउंटी और अधिकृत पेनेट्रेशन परीक्षण के लिए तेज़ HTTP पैरामीटर डिस्कवरी। ParamTrace वर्डलिस्ट प्रविष्टियों को पैरामीटर के रूप में भेजता है और उन लोगों को चिह्नित करता है जो बेसलाइन की तुलना में प्रतिक्रिया बदलते हैं।
कानूनी सूचना: ParamTrace का उपयोग केवल उन सिस्टम पर करें जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है (उदाहरण के लिए, इन-स्कोप बग बाउंटी लक्ष्य)। इसका उपयोग आप कैसे करते हैं, इसके लिए आप ज़िम्मेदार हैं।
पैरामीटर डिस्कवरी टूल पहले से मौजूद हैं (Arjun, x8, Burp के लिए Param Miner)। ParamTrace एक छोटा, केंद्रित विकल्प है:
--tolerance उन पेजों को संभालता है जो हर अनुरोध पर बदलते हैं।कब कुछ और उपयोग करें: यदि आप पहले से ही Burp में रहते हैं, तो Param Miner बेहतर फिट है। प्रति अनुरोध कई पैरामीटर बैच करने के लिए, Arjun या x8 जैसे परिपक्व टूल आज तेज़ हैं। बैचिंग ParamTrace रोडमैप पर है।
पूर्व-निर्मित बाइनरी (Linux x86_64 और aarch64, macOS Apple Silicon, Windows) Releases पेज पर हैं, प्रत्येक में एक .sha256 चेकसम फ़ाइल है। उदाहरण के लिए, Linux पर (फ़ोन पर Kali NetHunter के लिए aarch64 फ़ाइल का उपयोग करें):
tar -xzf paramtrace-*-linux-x86_64.tar.gz
sudo cp paramtrace-*-linux-x86_64/paramtrace /usr/local/bin/
Termux Android की C लाइब्रेरी का उपयोग करता है, इसलिए Linux बाइनरीज़ वहाँ नहीं चलेंगी। इसके बजाय सोर्स से इंस्टॉल करें: cargo install --git https://github.com/CurioTrace/paramtrace
परीक्षण स्थिति: Linux aarch64 बाइनरी (Kali NetHunter) और Termux सोर्स बिल्ड का परीक्षण लेखक द्वारा किया गया है। Linux x86_64, macOS और Windows बाइनरीज़ हर रिलीज़ पर स्वचालित रूप से बनाई जाती हैं, लेकिन लेखक द्वारा अभी तक इन्हें चलाया नहीं गया है, इसलिए यदि कोई काम न करे तो कृपया एक issue खोलें। बाइनरीज़ अहस्ताक्षरित हैं, इसलिए Windows या macOS पहली बार चलाने पर चेतावनी दिखा सकता है; आप किसी डाउनलोड को उसकी .sha256 फ़ाइल से सत्यापित कर सकते हैं।
या सोर्स से बिल्ड करें:
git clone https://github.com/CurioTrace/paramtrace
cd paramtrace
cargo build --release
# binary: target/release/paramtrace
# optional: install it so you can just type `paramtrace`
cargo install --path .
Termux (Android) और Kali NetHunter पर परीक्षण किया गया। यह कहीं भी बिल्ड होना चाहिए जहाँ Rust होता है (rustls का उपयोग करता है, OpenSSL की आवश्यकता नहीं)।

नीचे दिए गए उदाहरण मानते हैं कि
paramtraceआपके PATH में है (ऊपरcargo install --path .देखें)। यदि आपने केवलcargo build --releaseचलाया है, तो इसके बजाय./target/release/paramtraceका उपयोग करें। यदि इंस्टॉल करने के बाद कमांड नहीं मिलता है, तो Cargo का bin फ़ोल्डर अपने PATH में जोड़ें:export PATH="$HOME/.cargo/bin:$PATH"
paramtrace -u https://example.com/search -w wordlists/common.txt
paramtrace -u https://example.com/api -w words.txt -m post -t 20
paramtrace -u https://example.com/ -w words.txt -H "Cookie: session=abc" --proxy http://127.0.0.1:8080
paramtrace -u https://example.com/ -w words.txt -o out.json -f json
| फ़्लैग | विवरण |
|---|---|
-u, --url | लक्ष्य URL |
-w, --wordlist | पैरामीटर वर्डलिस्ट |
-m, --method | get (डिफ़ॉल्ट) या post |
-t, --threads | समवर्ती अनुरोध (डिफ़ॉल्ट 10) |
-H, --header | अतिरिक्त हेडर, दोहराने योग्य |
--timeout | सेकंड में अनुरोध टाइमआउट (डिफ़ॉल्ट 10) |
--delay | प्रति अनुरोध विलंब, ms में |
--tolerance | N बाइट्स तक के आकार अंतर को अनदेखा करें (गतिशील पृष्ठों पर उपयोगी) |
--value | प्रत्येक पैरामीटर के लिए भेजा जाने वाला मान (4 अक्षरों से कम के मान रिफ्लेक्शन जाँच को अक्षम कर देते हैं) |
--proxy | प्रॉक्सी URL (Caido, Burp) |
-k, --insecure | TLS सत्यापन छोड़ें |
-q, --quiet | स्टार्टअप बैनर छिपाएँ |
-o, --output / -f, --format | परिणामों को text या json के रूप में सहेजें |
PortSwigger Web Security Academy लैब के अपने स्वयं के इंस्टेंस के विरुद्ध परीक्षण किया गया: 6,454-प्रविष्टि वाली वर्डलिस्ट (6,453 गलत नाम और वास्तविक पैरामीटर productId) के साथ, ParamTrace ने केवल productId को चिह्नित किया, बिना किसी गलत सकारात्मक परिणाम के, 10 थ्रेड्स पर लगभग 3 मिनट में। सर्वर ने पैरामीटर के साथ और बिना दोनों ही स्थितियों में 400 उत्तर दिया, इसलिए केवल स्टेटस-कोड जाँच से यह छूट जाता। ParamTrace ने प्रतिक्रिया आकारों की तुलना करके इसे पकड़ लिया।
गति नेटवर्क पर बहुत अधिक निर्भर करती है, और पैरामीटर नाम केस-संवेदी होते हैं, इसलिए वर्डलिस्ट में वही सटीक नाम होना चाहिए जिसकी सर्वर अपेक्षा करता है।
--tolerance 0 का उपयोग करें।एक छोटी स्टार्टर सूची wordlists/common.txt में है। बड़ी सूचियों के लिए,
SecLists देखें।
वास्तविक लक्ष्यों के लिए, एक बड़ी सूची (लगभग 6,000 नाम) डाउनलोड करें और सावधानी से स्कैन करें:
curl -L -o wordlists/burp-params.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/burp-parameter-names.txt
paramtrace -u https://example.com/page -w wordlists/burp-params.txt -t 5 --delay 100
पैरामीटर नाम केस-सेंसिटिव होते हैं। जो सर्वर productId की अपेक्षा करता है, वह productid पर प्रतिक्रिया नहीं देगा, इसलिए ParamTrace केवल वही नाम ढूँढ सकता है जो आपकी वर्डलिस्ट में लक्ष्य द्वारा उपयोग की गई सटीक स्पेलिंग के साथ मौजूद हों। कई सूचियाँ पूरी तरह लोअरकेस होती हैं, इसलिए पहले अपनी सूची जाँचें, उदाहरण के लिए: grep -c -x productId yourlist.txt।
-t, --threads सीमित करता है कि एक साथ कितने अनुरोध प्रगति पर रहेंगे (डिफ़ॉल्ट 10)।--delay N प्रत्येक अनुरोध से पहले N मिलीसेकंड प्रतीक्षा करता है। यह हर समवर्ती अनुरोध पर लागू होता है, इसलिए अधिक थ्रेड्स का अर्थ अभी भी कुल मिलाकर प्रति सेकंड अधिक अनुरोध होता है।--timeout एक धीमे अनुरोध को स्कैन को लटकाए रखने से रोकता है।429 Too Many Requests का उत्तर देता है, तो ParamTrace उन प्रतिक्रियाओं को निष्कर्ष के रूप में रिपोर्ट नहीं करता। यह उन्हें गिनता है और अंत में एक चेतावनी प्रिंट करता है, क्योंकि परिणाम अपूर्ण हो सकते हैं। --threads कम करें, --delay जोड़ें, और अनुरोध दरों पर लक्ष्य के नियमों की जाँच करें।