“为什么要盲目扫描,而 WordPress 早已暴露自己?”
一款快速的 WordPress 插件和主题扫描器,通过 REST API 枚举检测已安装的插件,并通过 HTML 发现主题,然后将其映射到已知漏洞。无需暴力破解即可检测超过 5000 个插件,使用暴力破解可检测数千个更多插件。
自 2026 年 3 月 9 日起,Wordfence 弃用了其 v2 API。所有 v0.10.16 之前的 WPProbe 版本的 update-db 功能均已失效。您需要更新 WPProbe。
默认情况下,wpprobe update-db 会从此仓库获取预构建的数据库(通过 CI 每 2 小时更新一次),因此无需 API 密钥。如果您想自行直接从 Wordfence 获取,可以可选地设置一个免费 API 密钥:
--api-key 标志进行设置go install github.com/Chocapikk/wpprobe@latest
wpprobe update-db
wpprobe scan -u https://example.com
wpprobe scan -u https://example.com --mode stealthy
wpprobe scan -u https://example.com --mode bruteforce
wpprobe scan -u https://example.com --mode hybrid
# Kali Linux(包含在 kali-rolling 中)
sudo apt install wpprobe
# Go(需要 1.22+)
go install github.com/Chocapikk/wpprobe@latest
# Nix
nix-shell -p wpprobe
# Docker
docker run -it --rm wpprobe scan -u https://example.com
# 从源码构建
git clone https://github.com/Chocapikk/wpprobe && cd wpprobe && go build -o wpprobe
# 挂载当前目录以进行输入/输出文件操作
docker run -it --rm -v $(pwd):/data wpprobe scan -f /data/targets.txt -o /data/results.csv
# 持久化漏洞数据库
docker run -it --rm \
-v $(pwd):/data \
-v wpprobe-config:/config \
wpprobe scan -f /data/targets.txt -o /data/results.json
# 更新数据库
docker run -it --rm \
-v wpprobe-config:/config \
-e WORDFENCE_API_KEY=your_key \
-e WPSCAN_API_TOKEN=your_token \
wpprobe update-db
# 单个目标
wpprobe scan -u https://example.com
# 多目标并发扫描
wpprobe scan -f targets.txt -t 20
# 自定义选项
wpprobe scan -u https://example.com \
--header "User-Agent: CustomAgent" \
--proxy http://proxy:8080 \
--rate-limit 10 \
--no-check-version
# 输出格式
wpprobe scan -u https://example.com -o results.csv
wpprobe scan -u https://example.com -o results.json
# 更新数据库(Wordfence 需要免费 API 密钥,WPScan 需要企业版 API 令牌)
wpprobe update-db --api-key your_wordfence_key
# 或使用环境变量
export WORDFENCE_API_KEY=your_key_here
wpprobe update-db
# 搜索漏洞
wpprobe search --cve CVE-2024-1234
wpprobe search --plugin woocommerce
wpprobe search --severity critical
wpprobe search --auth Unauth
wpprobe search --title "SQL Injection" --details
# 数据库统计信息
wpprobe list
设置 WORDFENCE_API_KEY 以进行 Wordfence 数据库更新(免费)。设置 WPSCAN_API_TOKEN 以进行 WPScan 数据库更新(仅限企业版计划)。
wpprobe update
只有从发布版本安装的二进制文件才能自我更新。从源码构建的版本通常领先于最新发布版本,因此替换它将是降级:请改为从仓库重新构建,或传递 --force 以安装发布二进制文件。
启动时 WPProbe 会检查最新发布的版本以标记横幅。该结果会缓存 24 小时,并且可以完全关闭此检查:
export WPPROBE_NO_UPDATE_CHECK=1
隐蔽模式 查询暴露的 REST API 路由(?rest_route=/),并将发现的端点与预编译的已知插件签名数据库进行匹配。它还会通过解析页面 HTML 中的 wp-content/themes/ 引用来发现活动主题,并从 style.css 获取其版本。这会产生最少的请求,并避免被 WAF 检测。
暴力破解模式 通过 GET 请求直接检查插件目录。403 响应确认插件存在(目录列表被禁止)。200 响应会通过检查目录列表中的 readme.txt 进行验证,以避免因 WordPress 实例对所有路径返回 200 而产生的误报。
混合模式 结合了两者:先使用隐蔽模式进行低噪音检测,然后对剩余插件进行暴力破解。无论何种模式,主题始终通过 HTML 发现。
检测到的插件和主题会与来自 Wordfence 和 WPScan 数据库的已知 CVE 进行关联,并通过版本范围匹配来识别易受攻击的安装。
CSV:
URL,Plugin,Version,Severity,AuthType,CVEs,CVE Links,CVSS Score,CVSS Vector,Title
http://example.com,give,2.20.1,critical,Unauth,CVE-2025-22777,https://www.cve.org/CVERecord?id=CVE-2025-22777,9.8,CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection
JSON 输出始终是一个数组,每个扫描目标对应一个对象,因此无论您扫描一个 URL 还是使用 -f 扫描多个 URL,单个文件都保持有效。
JSON:
[
{
"url": "http://example.com",
"plugins": {
"give": [
{
"version": "2.20.1",
"severities": [
{
"critical": [
{
"auth_type": "Unauth",
"vulnerabilities": [
{
"cve": "CVE-2025-22777",
"cve_link": "https://www.cve.org/CVERecord?id=CVE-2025-22777",
"title": "GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection",
"cvss_score": 9.8,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
]
}
]
}
]
}
],
"wordpress-seo": [
{
"version": "27.1.1"
}
]
}
}
]
欢迎贡献。请提交 issue 或拉取请求。
MIT 许可证 - 详情请参阅 LICENSE 文件。
漏洞数据来自 Wordfence Intelligence,由 Defiant, Inc. 提供。版权所有 (c) Defiant, Inc. 保留所有权利。本仓库 db 发布版本中发布的预构建数据库是该数据的处理副本,根据 Wordfence Intelligence 条款和条件 中授予的许可证重新分发。您制作的任何副本都必须复制 Defiant, Inc. 的版权标识和该许可证,两者均包含在 NOTICE 中,并在您运行 update-db 时写在磁盘上的数据库旁边。
WPProbe 与 Defiant, Inc. 无关联、未经其认可,也未由其赞助。
由 @Chocapikk 开发。
| 模式 | 方法 | 隐蔽性 | 覆盖范围 |
|---|
stealthy(默认) | REST API 端点匹配 + HTML 主题发现 | 高 | 5000+ 插件 + 主题 |
bruteforce | 直接目录检查 | 低 | 10k+ 插件 |
hybrid | 先隐蔽扫描,再暴力破解 | 中 | 最大 |
| 变量 | 描述 |
|---|
WORDFENCE_API_KEY | 用于数据库更新的 Wordfence API 密钥(免费,在此获取) |
WPSCAN_API_TOKEN | 用于数据库更新的 WPScan 企业版 API 令牌 |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY | 代理配置 |
NO_PROXY | 代理绕过规则 |