
वेब कैश पॉइज़निंग और डिसेप्शन के लिए Go-आधारित CLI स्कैनर। यह 10 पॉइज़निंग तकनीकों, कई डिसेप्शन विधियों, अंतर्निहित क्रॉलर, JSON रिपोर्टिंग और पेनिट्रेशन टेस्टिंग के लिए प्रॉक्सी इंटीग्रेशन का समर्थन करता है।
वेब कैश भेद्यता स्कैनर (WCVS) एक तेज़ और बहुमुखी CLI स्कैनर है जो वेब कैश पॉइज़निंग और वेब कैश डिसेप्शन के लिए Hackmanit और Maximilian Hildebrand द्वारा विकसित किया गया है।
यह स्कैनर कई अलग-अलग वेब कैश पॉइज़निंग और वेब कैश डिसेप्शन तकनीकों का समर्थन करता है, जिसमें आगे परीक्षण के लिए URL खोजने हेतु एक क्रॉलर शामिल है, और अधिक कुशल परीक्षण के लिए एक विशिष्ट वेब कैश के अनुकूल हो सकता है। यह अत्यधिक अनुकूलन योग्य है और इसे मौजूदा CI/CD पाइपलाइनों में आसानी से एकीकृत किया जा सकता है।
WCVS की पूर्व-निर्मित बाइनरी रिलीज़ पृष्ठ पर उपलब्ध हैं।
apt install web-cache-vulnerability-scannerpacman -S wcvsरिपॉजिटरी को Go का उपयोग करके स्थापित किया जा सकता है।
go1.21 और उच्चतर
go install -v github.com/Hackmanit/Web-Cache-Vulnerability-Scanner@latest
$ docker build .
Sending build context to Docker daemon 29.54MB
Step 1/10 : FROM golang:latest AS builder
---> 05c8f6d2538a
Step 2/10 : WORKDIR /go/src/app
---> Using cache
---> f591f24be8cf
Step 3/10 : COPY . .
---> 38b358dd3472
Step 4/10 : RUN go get -d -v ./...
---> Running in 41f53de436c5
....
Removing intermediate container 9e2e84d14ff3
---> 1668edcf6ee3
Successfully built 1668edcf6ee3
$ docker run -it 1668edcf6ee3 /wcvs --help
https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner
version 1.0.0
WCVS अपने फ़्लैग का उपयोग करके अत्यधिक अनुकूलन योग्य है। कई फ़्लैग सीधे मान या फ़ाइल का पथ रख सकते हैं।
एकमात्र अनिवार्य फ़्लैग -u/--url है जो लक्ष्य URL प्रदान करने के लिए है जिसे वेब कैश पॉइज़निंग/डिसेप्शन के लिए परीक्षण किया जाना चाहिए। लक्ष्य URL विभिन्न प्रारूपों में प्रदान किया जा सकता है,
पहली 5 तकनीकों के परीक्षण के लिए WCVS को दो वर्डलिस्ट की आवश्यकता होती है - एक हेडर नामों के साथ और एक पैरामीटर नामों के साथ। वर्डलिस्ट या तो उसी निर्देशिका में मौजूद हो सकती हैं जहाँ से WCVS निष्पादित किया गया है, या --headerwordlist/-hw और --parameterwordlist/-pw फ़्लैग का उपयोग करके निर्दिष्ट की जा सकती हैं।
wcvs -u 127.0.0.1
wcvs -u http://127.0.0.1
wcvs -u https://example.com
wcvs -u file:path/to/url_list
wcvs -u https://example.com -hw "file:/home/user/Documents/wordlist-header.txt"
wcvs -u https://example.com -pw "file:/home/user/Documents/wordlist-parameter.txt"
wcvs -u https://example.com -hw "file:/home/user/Documents/wordlist-header.txt" -pw "file:/home/user/Documents/wordlist-parameter.txt"
--cacheheader/-ch एक कस्टम कैश हेडर निर्दिष्ट करता है जो कैश हिट और मिस के लिए जाँचा जाएगा--setcookies/-sc उन कुकीज़ को निर्दिष्ट करता है जिन्हें अनुरोध में जोड़ा जाना चाहिए--setheaders/-sh उन हेडर को निर्दिष्ट करता है जिन्हें अनुरोध में जोड़ा जाना चाहिए--setparameters/-sp उन पैरामीटर को निर्दिष्ट करता है जिन्हें अनुरोध में जोड़ा जाना चाहिए। जबकि उन्हें URL में जोड़ना भी संभव है, कुछ मामलों में इस फ़्लैग के माध्यम से जोड़ना अधिक उपयोगी हो सकता है।--post/-post HTTP विधि को GET से POST में बदलता है--setbody/-sb उस बॉडी को निर्दिष्ट करता है जिसे अनुरोध में जोड़ा जाना चाहिए--contenttype/-ct Content-Type हेडर का मान निर्दिष्ट करता है--useragentchrome/-uac User-Agent को WebCacheVulnerabilityScanner v{Version-Number} से Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 में बदलता है। जबकि यही काम के साथ भी किया जा सकता है, यह फ़्लैग एक त्वरित तरीका प्रदान करता है।wcvs -u https://example.com -ch "X-Custom-Header-ABC"
wcvs -u https://example.com -sc "PHPSESSID=123"
wcvs -u https://example.com -sc "file:/home/user/Documents/cookies.txt"
wcvs -u https://example.com -sh "Referer: localhost"
wcvs -u https://example.com -sh "file:/home/user/Documents/headers.txt"
wcvs -u https://example.com -sp "admin=true"
wcvs -u https://example.com -sp "file:/home/user/Documents/parameters.txt"
wcvs -u https://example.com -post -sb "admin=true"
wcvs -u https://example.com -post -sb "file:/home/user/Documents/body.txt"
wcvs -u https://example.com -post -sb "{}" -ct "application/json"
wcvs -u https://example.com -uac
wcvs -u https://example.com -ch "X-Custom-Cache-Header"
यदि फ़्लैग --generatereport/-gr सेट है तो प्रत्येक स्कैन किए गए URL के बाद एक JSON रिपोर्ट उत्पन्न और अद्यतन की जाती है।
रिपोर्ट, लॉग फ़ाइल की तरह, उसी निर्देशिका में लिखी जाती है जहाँ से WCVS निष्पादित किया गया है। सभी आउटपुट फ़ाइलों के लिए निर्देशिका बदलने के लिए --generatepath/-gp का उपयोग करें।
यदि रिपोर्ट में HTML विशेष वर्णों को एन्कोड किया जाना है, तो --escapejson/-ej का उपयोग करें।
wcvs -u https://example.com -gr
wcvs -u https://example.com -gr -ej
wcvs -u https://example.com -gr -gp /home/user/Documents
wcvs -u https://example.com -gr -gp /home/user/Documents -ej
URL क्रॉल करने के लिए, --recursivity/-r सेट करना आवश्यक है। यह निर्दिष्ट करता है कि क्रॉलर रिकर्सन के संदर्भ में कितनी गहराई तक जाएगा।
डिफ़ॉल्ट रूप से WCVS केवल उसी डोमेन के URL क्रॉल करता है। अन्य डोमेन के लिए भी क्रॉल करने के लिए, --recdomains/red का उपयोग किया जा सकता है।
केवल उन URL को क्रॉल करने के लिए जो किसी विशिष्ट स्ट्रिंग को प्राप्त करते हैं, --recinclude/-rin का उपयोग किया जा सकता है।
--reclimit/-rl प्रत्येक रिकर्सन गहराई के लिए कितने URL क्रॉल किए जाते हैं, इसे सीमित करता है।
साथ ही, उन URL की सूची निर्दिष्ट की जा सकती है जिन्हें क्रॉल नहीं किया जाना चाहिए, --recexclude/-rex के साथ। --generatecompleted/-gc का उपयोग, उदाहरण के लिए, सभी पहले से परीक्षण किए गए URL की सूची उत्पन्न करने के लिए किया जा सकता है। यदि स्कैन दोहराया जाता है, लेकिन WCVS समान URL को फिर से क्रॉल और परीक्षण नहीं करना चाहता, तो इस सूची का उपयोग --recexclude/-rex के लिए किया जा सकता है।
wcvs -u https://example.com -r 5
wcvs -u https://example.com -r 5 -red /home/user/Documents/mydomains.txt
wcvs -u https://example.com -r 5 -rl 2
wcvs -u https://example.com -r 5 -rex /home/user/Documents/donttest.txt
प्रॉक्सी का उपयोग करने के लिए, --useproxy/-up निर्दिष्ट करें। यदि आप Burp का उपयोग कर रहे हैं, तो सुनिश्चित करें कि "Settings > Network > HTTP > HTTP/2 > Default to HTTP/2 if the server supports it" को अनचेक करें। अन्यथा कुछ तकनीकें, जो गैर-RFC-अनुपालक हेडर पर निर्भर करती हैं, काम नहीं करेंगी।
प्रॉक्सी के लिए डिफ़ॉल्ट URL http://127.0.0.1:8080 है। इसे बदलने के लिए, --proxyurl/-purl का उपयोग करें।
wcvs -u https://example.com -up
wcvs -u https://example.com -up -purl http://127.0.0.1:8081
प्रति सेकंड अधिकतम अनुमत अनुरोधों की संख्या --reqrate/-rr के साथ सेट की जा सकती है। डिफ़ॉल्ट रूप से, यह संख्या असीमित है।
इसके विपरीत, यदि --threads/-t का उपयोग करके WCVS द्वारा उपयोग किए जाने वाले समवर्ती थ्रेड की संख्या बढ़ाई जाती है, तो प्रति सेकंड अनुरोधों की संख्या संभावित रूप से बढ़ाई जा सकती है। डिफ़ॉल्ट मान 20 है।
wcvs -u https://example.com -rr 10
wcvs -u https://example.com -rr 1
wcvs -u https://example.com -rr 0.5
wcvs -u https://example.com -t 50
WCVS पहले बताए गए फ़्लैग और विकल्पों से भी अधिक प्रदान करता है। --help/-h प्रत्येक फ़्लैग, उसके अर्थ और उपयोग विधि की सूची प्रदान करता है।
wcvs -h
वेब कैश पॉइज़निंग और WCVS के बारे में अधिक जानकारी देने वाली ब्लॉग पोस्ट की एक छोटी श्रृंखला यहाँ पाई जा सकती है:
वेब कैश भेद्यता स्कैनर (WCVS) का पहला संस्करण Maximilian Hildebrand द्वारा एक स्नातक थीसिस के भाग के रूप में विकसित किया गया था।
WCVS Hackmanit और Maximilian Hildebrand द्वारा विकसित किया गया है और Apache License, Version 2.0 के तहत लाइसेंस प्राप्त है।
-sh "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..."--cacheheader/-ch एक कस्टम कैश हेडर निर्दिष्ट करें (केस-असंवेदनशील)