####################
免责声明:工具本身并无好坏,希望大家以遵守《网络安全法》相关法律为前提来使用该工具,支持研究学习,切勿用于非法犯罪活动,对于恶意使用该工具造成的损失,和本人及开发者无关。
####################
Web Cache Vulnerability Scanner (WCVS) 是由Hackmanit开发的用于Web 缓存中毒的快速且通用的 CLI 扫描程序。
该扫描程序支持许多不同的 Web 缓存中毒技术,包括一个爬虫来识别进一步的 URL 以进行测试,并且可以适应特定的 Web 缓存以进行更有效的测试。它是高度可定制的,可以很容易地集成到现有的 CI/CD 管道中。
特征
-
支持 9 种 Web 缓存中毒技术:
-
无键标头中毒
-
无键参数中毒
-
参数伪装
-
胖GET
-
HTTP 响应拆分
-
HTTP 请求走私
-
HTTP 标头过大 (HHO)
-
HTTP 元字符 (HMC)
-
HTTP 方法覆盖 (HMO)
-
在测试之前分析 Web 缓存并对其进行调整以进行更有效的测试
-
生成 JSON 格式的报告
-
爬取网站以获取更多要扫描的 URL
-
通过代理路由流量(例如,Burp Suite)
-
限制每秒请求以绕过速率限制
安装
选项 1:预构建二进制文件(推荐)
发布页面上提供了 WCVS 的预构建二进制文件。这些版本还包括 2 个默认词汇表。
选项 2:使用 Go 获取存储库
可以使用 Go 获取存储库。
go get -u https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner
用法
WCVS 使用它的标志是高度可定制的。许多标志可以直接包含一个值或文件的路径。
唯一的强制性标志是-u/--url
提供应测试 Web 缓存中毒的目标 URL。目标 URL 可以以不同的格式提供,
WCVS 需要两个单词表来测试前 5 种技术——一个带有标题名称的单词列表和一个带有参数名称的单词列表。单词表可以存在于 WCVS 执行的同一目录中,也可以使用--headerwordlist/-hw
and--parameterwordlist/-pw
标志指定。
例子:
wcvs -u 127.0.0.1wcvs -u http://127.0.0.1wcvs -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"
指定标头、参数、Cookie 等
-
--setcookies/-sc
指定应添加到请求中的 cookie -
--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
。虽然可以使用 eg 实现相同的目的-sh "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...
,但此标志提供了一种更快的方法。
例子:
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
生成 JSON 报告
如果--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 5wcvs -u https://example.com -r 5 -red /home/user/Documents/mydomains.txt
wcvs -u https://example.com -r 5 -rl 2wcvs -u https://example.com -r 5 -rex /home/user/Documents/donttest.txt
使用代理
要使用代理,需要 PEM 格式的代理 CA 证书。例如,Burp Suite 证书以 DER 格式提供。要转换它们,可以使用以下命令:openssl x509 -inform DER -outform PEM -text -in cacert.der -out cacert.pem
. 可以使用 指定证书的路径--proxycertpath/-ppath
。代理的默认 URL 是http://127.0.0.1:8080
. 为了改变它,使用--proxyurl/-purl
.
例子:
wcvs -u https://example.com -ppath /home/user/Documents/cacert.pem
wcvs -u https://example.com -ppath /home/user/Documents/cacert.pem -purl http://127.0.0.1:8081
油门或加速
每秒允许的最大请求数可以用 设置--reqrate/-rr
。默认情况下,此数字不受限制。相反,如果--threads/-t
用于增加 WCVS 使用的并发线程数,每秒的请求数可能会增加。默认值为 20。
例子:
wcvs -u https://example.com -rr 10wcvs -u https://example.com -rr 1wcvs -u https://example.com -rr 0.5wcvs -u https://example.com -t 50
复制
进一步的标志
WCVS 提供了比前面提到的标志和选项更多的功能。--help/-h
提供每个标志的列表、其含义以及如何使用它。
例子:
wcvs -h
原文始发于微信公众号(菜鸟小新):Web Cache Vulnerability Scanner 是一个基于 Go 的 CLI 工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论