"因为当WordPress自己暴露时,为什么要盲目扫描?"
一个快速的WordPress插件和主题扫描器,通过REST API枚举检测已安装的插件,通过HTML发现主题,并将其映射到已知漏洞。可检测超过5000个插件而无需暴力破解,开启暴力破解后可检测数千个更多插件。
自2026年3月9日起,Wordfence弃用了他们的v2 API。所有v0.10.16之前的WPProbe版本的update-db功能已损坏。您需要更新WPProbe。
默认情况下,wpprobe update-db从此仓库获取预构建的数据库(每2小时通过CI更新),因此无需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
隐蔽模式查询暴露的REST API路由(?rest_route=/),并将发现的端点与预编译的已知插件签名数据库匹配。它还通过解析页面HTML中的wp-content/themes/引用来发现激活的主题,并从style.css获取其版本。这种方式生成的请求极少,可避免被WAF检测。
暴力破解模式通过GET请求直接检查插件目录。403响应确认插件存在(目录列表被禁止)。200响应通过检查目录列表中的readme.txt来验证,以避免因返回200的WordPress实例导致的误报。
混合模式结合两者:先使用隐蔽模式进行低噪声检测,然后对剩余插件使用暴力破解。无论何种模式,主题始终通过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": "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或提交一个pull request。
MIT许可证 - 详见LICENSE文件。
由@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 | 代理绕过规则 |