
Scanner CLI basé sur Go pour le web cache poisoning et la deception. Supporte 10 techniques de poisoning, plusieurs méthodes de deception, un crawler intégré, des rapports JSON, et une intégration proxy pour les tests de pénétration.
Web Cache Vulnerability Scanner (WCVS) est un scanner CLI rapide et polyvalent pour l'empoisonnement du cache web et la tromperie du cache web développé par Hackmanit et Maximilian Hildebrand.
Le scanner prend en charge de nombreuses techniques d'empoisonnement du cache web et de tromperie du cache web, inclut un crawler pour identifier d'autres URL à tester, et peut s'adapter à un cache web spécifique pour des tests plus efficaces. Il est hautement personnalisable et peut être facilement intégré dans des pipelines CI/CD existants.
Les binaires pré-compilés de WCVS sont fournis sur la page des versions.
apt install web-cache-vulnerability-scannerpacman -S wcvsLe dépôt peut être installé avec Go.
go1.21 et supérieur
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 est hautement personnalisable grâce à ses drapeaux. Beaucoup de drapeaux peuvent contenir une valeur directement ou le chemin vers un fichier.
Le seul drapeau obligatoire est -u/--url pour fournir l'URL cible qui doit être testée pour l'empoisonnement/tromperie du cache web. L'URL cible peut être fournie dans différents formats,
WCVS a besoin de deux listes de mots pour tester les 5 premières techniques - une liste avec des noms d'en-tête et une avec des noms de paramètre. Les listes de mots peuvent être présentes dans le même répertoire d'exécution de WCVS ou spécifiées avec les drapeaux --headerwordlist/-hw et --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 spécifie un en-tête de cache personnalisé qui sera vérifié pour les hits et misses du cache--setcookies/-sc spécifie les cookies à ajouter à la requête--setheaders/-sh spécifie les en-têtes à ajouter à la requête--setparameters/-sp spécifie les paramètres à ajouter à la requête. Bien qu'il soit également possible de les ajouter simplement à l'URL, il peut être plus utile dans certains cas de les ajouter via ce drapeau.--post/-post change la méthode HTTP de GET à POST--setbody/-sb spécifie le corps à ajouter à la requête--contenttype/-ct spécifie la valeur de l'en-tête Content-Type--useragentchrome/-uac change le User-Agent de 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. Bien que le même résultat puisse être obtenu avec , ce drapeau offre un moyen plus rapide.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"
Un rapport JSON est généré et mis à jour après chaque URL scannée si le drapeau --generatereport/-gr est défini.
Le rapport est écrit, comme un fichier journal, dans le même répertoire d'exécution de WCVS. Pour changer le répertoire pour tous les fichiers de sortie, utilisez --generatepath/-gp.
Si les caractères spéciaux HTML doivent être encodés dans le rapport, utilisez --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
Pour crawler des URL, --recursivity/-r doit être défini. Il spécifie la profondeur de récursivité du crawler.
Par défaut, WCVS ne crawle que les URL du même domaine. Pour crawler également d'autres domaines, --recdomains/red peut être utilisé.
Pour ne crawler que les URL qui contiennent une chaîne spécifique, --recinclude/-rin peut être utilisé.
--reclimit/-rl limite le nombre d'URL crawlées pour chaque profondeur de récursivité.
De plus, une liste d'URL à ne pas crawler peut être spécifiée avec --recexclude/-rex. --generatecompleted/-gc peut par exemple être utilisé pour générer une liste de toutes les URL déjà testées. Si une analyse est répétée mais que WCVS ne doit pas crawler et tester à nouveau les mêmes URL, cette liste peut être utilisée pour --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
Pour utiliser un proxy, spécifiez --useproxy/-up. Si vous utilisez Burp, assurez-vous de décocher "Settings > Network > HTTP > HTTP/2 > Default to HTTP/2 if the server supports it". Sinon, certaines techniques qui reposent sur des en-têtes non conformes aux RFC ne fonctionneront pas.
L'URL par défaut du proxy est http://127.0.0.1:8080. Pour la changer, utilisez --proxyurl/-purl.
wcvs -u https://example.com -up
wcvs -u https://example.com -up -purl http://127.0.0.1:8081
Le nombre maximum de requêtes autorisées par seconde peut être défini avec --reqrate/-rr. Par défaut, ce nombre est illimité.
Inversement, le nombre de requêtes par seconde peut potentiellement être augmenté si --threads/-t est utilisé pour augmenter le nombre de threads concurrents utilisés par WCVS. La valeur par défaut est 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 fournit encore plus de drapeaux et d'options que ceux mentionnés précédemment. --help/-h fournit une liste de chaque drapeau, sa signification et comment l'utiliser.
wcvs -h
Une courte série d'articles de blog donnant plus d'informations sur l'empoisonnement du cache web et WCVS peut être trouvée ici :
La première version de Web Cache Vulnerability Scanner (WCVS) a été développée dans le cadre d'un mémoire de licence de Maximilian Hildebrand.
WCVS est développé par Hackmanit et Maximilian Hildebrand et est sous licence Apache License, Version 2.0.
-sh "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...--cacheheader/-ch spécifie un en-tête de cache personnalisé (insensible à la casse)