
ماسح ضوئي CLI قائم على Go للتسمم الكاشفي والخداع على الويب. يدعم 10 تقنيات تسميم، وطرق خداع متعددة، وزواحف مدمجة، وتقارير JSON، وتكامل وكيل لاختبار الاختراق.
Web Cache Vulnerability Scanner (WCVS) هو ماسح ضوئي سريع ومتعدد الاستخدامات بواسطة سطر الأوامر لـ تسمم ذاكرة التخزين المؤقت للويب وخداع ذاكرة التخزين المؤقت للويب، تم تطويره بواسطة 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 المستهدف بتنسيقات مختلفة،
يحتاج 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. بينما يمكن تحقيق نفس الشيء باستخدام مثلاً -sh "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...، إلا أن هذا الخيار يوفر طريقة أسرع.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"
يتم إنشاء تقرير بصيغة JSON وتحديثه بعد كل عنوان URL تم مسحه ضوئيًا إذا تم تعيين الخيار --generatereport/-gr.
يُكتب التقرير، مثل ملف السجل، في نفس الدليل الذي يتم تنفيذ 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 كجزء من أطروحة بكالوريوس لمكسيميليان هيلدبراند.
WCVS تم تطويره بواسطة Hackmanit و Maximilian Hildebrand ومرخص بموجب رخصة Apache، الإصدار 2.0.
--cacheheader/-ch يحدد رأس ذاكرة تخزين مؤقت مخصص (غير حساس لحالة الأحرف)