
waf-checker v1.1.0
स्वचालित WAF मूल्यांकन उपकरण जो फ़ायरवॉल विक्रेताओं का पता लगाता है, उन्नत चोरी-छिपे पेलोड के साथ 19 हमले श्रेणियों का परीक्षण करता है, और CLI, Cloudflare Worker, या Docker के माध्यम से रंग-कोडित बाईपास विश्लेषण प्रदान करता है।
WAF जाँचकर्ता
यह प्रोजेक्ट आपको यह जाँचने में मदद करता है कि आपका वेब एप्लिकेशन फ़ायरवॉल (WAF) आपके उत्पाद को सामान्य वेब हमलों से कितनी अच्छी तरह सुरक्षित करता है। इसे Cloudflare Worker (अंतर्निहित इंटरैक्टिव वेब UI के साथ) या एक स्टैंडअलोन Node.js CLI टूल के रूप में चलाया जा सकता है।
विशेषताएँ
मुख्य परीक्षण
- लक्ष्य URL दर्ज करें, HTTP विधियाँ (GET, POST, आदि) और हमले की श्रेणियाँ चुनें।
- हमले के पेलोड के साथ अनुरोध भेजता है (पैरामीटर, हेडर, या फ़ाइल पथ के रूप में)।
- रंग-कोडित टर्मिनल और वेब परिणाम: 🟢 403/BLOCKED = अवरुद्ध, 🔴 2xx/5xx = संभावित बाईपास, 🟠 3xx = रीडायरेक्ट।
- परिणाम प्रत्येक पेलोड के विवरण के साथ फ़िल्टर करने योग्य तालिका में प्रदर्शित होते हैं।
हमले की श्रेणियाँ (कुल 19)
SQL Injection, XSS, Path Traversal, Command Injection, SSRF, NoSQL Injection, Local File Inclusion, LDAP Injection, HTTP Request Smuggling, Open Redirect, Sensitive Files, CRLF Injection, UTF8/Unicode Bypass, XXE, SSTI, HTTP Parameter Pollution, Web Cache Poisoning, IP Bypass, User-Agent.
WAF पहचान
- परीक्षण से पहले WAF प्रकार का स्वतः पता लगाएं (Cloudflare, AWS WAF, ModSecurity, Akamai, Imperva, F5 BIG-IP, आदि)।
- पता लगाए गए WAF के आधार पर विशिष्ट बाईपास तकनीक सुझाता है।
- WAF-विशिष्ट उन्नत पेलोड पर स्वतः स्विच कर सकता है।
उन्नत पेलोड और एन्कोडिंग
- WAF बाईपास पेलोड — दोहरा एन्कोडिंग, यूनिकोड, मिश्रित केस, टिप्पणी इंजेक्शन, पॉलीग्लॉट पेलोड।
- संवर्धित पेलोड — आधुनिक चोरी तकनीकें।
- एन्कोडिंग विविधताएँ — URL, यूनिकोड, HTML एंटिटी, हेक्स, ऑक्टल, Base64 एन्कोडिंग स्वचालित संयोजनों के साथ।
- Cloudflare, AWS WAF, ModSecurity के लिए WAF-विशिष्ट बाईपास।
HTTP प्रोटोकॉल हेरफेर
- HTTP Verb Tampering — असामान्य HTTP विधियों का परीक्षण करें।
- Parameter Pollution — क्वेरी/बॉडी में पैरामीटर को डुप्लिकेट और विभाजित करें।
- Content-Type Confusion — नियमों को बायपास करने के लिए वैकल्पिक सामग्री प्रकार।
- Request Smuggling हेडर।
- Host Header Injection विविधताएँ।
- हेडर के माध्यम से HTTP विधि ओवरराइड (
X-HTTP-Method-Override, आदि)।
बैच परीक्षण
- एक साथ कई URL का परीक्षण करें।
- अनुरोधों के बीच कॉन्फ़िगरेबल समवर्तीता और विलंब।
- रीयल-टाइम प्रगति ट्रैकिंग।
परियोजना संरचना
परियोजना NPM वर्कस्पेस मोनोरेपो के रूप में संरचित है:
packages/core/: मुख्य सुरक्षा परीक्षण लाइब्रेरी, पेलोड परिभाषा, WAF फ़िंगरप्रिंटिंग हस्ताक्षर, और अस्पष्टता एन्कोडर।packages/worker/: Cloudflare Worker पैकेज जो स्थिर HTML/JS वेब UI और JSON API एंडपॉइंट प्रदान करता है।packages/cli/: Node.js कमांड-लाइन इंटरफ़ेस टूल जो सीधे आपके टर्मिनल से ऑडिट निष्पादित करने के लिए है।
स्थापना और निर्माण
रूट निर्देशिका से, निर्भरताएँ स्थापित करें और सभी वर्कस्पेस बनाएँ:
npm install
npm run build
कैसे चलाएँ
1. वेब संस्करण (Cloudflare Worker)
Worker dev सर्वर को स्थानीय रूप से चलाने के लिए (Wrangler आवश्यक):
npm run dev:worker
वेब UI http://localhost:8787 पर सुलभ होगा (या यदि 8787 व्यस्त है तो कोई अन्य पोर्ट)।
Worker को Cloudflare पर तैनात करने के लिए:
npx wrangler deploy --workspace=packages/worker
2. CLI संस्करण (Node.js)
अपने कमांड लाइन से सीधे सुरक्षा परीक्षण ऑडिट चलाने के लिए:
# सामान्य CLI सहायता और उपयोग प्रिंट करें
node packages/cli/dist/index.js --help
# चेक कमांड सहायता प्रिंट करें (सभी विधियाँ, श्रेणियाँ और WAF विक्रेता सूचीबद्ध करता है)
node packages/cli/dist/index.js check --help
WAF पहचान
लक्ष्य URL के पीछे WAF विक्रेता का पता लगाएं:
node packages/cli/dist/index.js detect <url>
भेद्यता पेलोड ऑडिट
किसी लक्ष्य URL के विरुद्ध ऑडिट चलाएँ:
# डिफ़ॉल्ट जाँच (GET विधि, सभी पेलोड श्रेणियाँ)
node packages/cli/dist/index.js check https://example.com
# विशिष्ट विधियों, श्रेणियों और WAF चोरी सक्षम के साथ कस्टम जाँच
node packages/cli/dist/index.js check https://example.com -m GET,POST -c "SQL Injection,XSS" --auto-detect-waf --encoding-variations
बैच ऑडिट
एक फ़ाइल में परिभाषित URL की सूची के लिए बैच ऑडिट चलाएँ:
node packages/cli/dist/index.js batch targets.txt --concurrency 3
3. Docker संस्करण
आप Docker का उपयोग करके CLI चला सकते हैं, या तो GitHub Container Registry से पहले से निर्मित इमेज खींचकर या इसे स्थानीय रूप से बनाकर।
पूर्व-निर्मित इमेज का उपयोग करना (अनुशंसित)
पूर्व-निर्मित Docker इमेज GitHub Container Registry पर ghcr.io/sech0us3/waf-checker-cli पर उपलब्ध है।
इमेज खींचें
docker pull ghcr.io/sech0us3/waf-checker-cli:latest
सहायता प्रिंट करें
docker run --rm ghcr.io/sech0us3/waf-checker-cli:latest --help
जाँच चलाएँ
docker run --rm -it ghcr.io/sech0us3/waf-checker-cli:latest check https://example.com
बैच ऑडिट चलाएँ (स्थानीय निर्देशिका माउंट करके)
docker run --rm -it -v "$(pwd):/data" ghcr.io/sech0us3/waf-checker-cli:latest batch /data/targets.txt --concurrency 3
स्थानीय रूप से निर्माण
इमेज बनाएँ
docker build -t waf-checker-cli .
सहायता प्रिंट करें
docker run --rm waf-checker-cli --help
जाँच चलाएँ
docker run --rm -it waf-checker-cli check https://example.com
बैच ऑडिट चलाएँ (स्थानीय निर्देशिका माउंट करके)
docker run --rm -it -v "$(pwd):/data" waf-checker-cli batch /data/targets.txt --concurrency 3
परीक्षण
वर्कस्पेस-वाइड परीक्षण सूट चलाने के लिए (Vitest का उपयोग करके):
npm test
मेरा ब्लॉग पढ़ें yoursec.substack.com पर