Chocapikk/wpprobe

GitHub: Chocapikk/wpprobe

一款基于Go开发的WordPress插件快速枚举工具,通过REST API隐蔽检测已安装插件并关联已知漏洞库。

Stars: 791 | Forks: 100

WPProbe

“既然 WordPress 会自我暴露,为何还要盲目扫描?”

WPProbe

[![Go CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/40ae6043b4030055.svg)](https://github.com/Chocapikk/wpprobe/actions/workflows/go.yml) [![最新版本](https://img.shields.io/github/v/release/Chocapikk/wpprobe)](https://github.com/Chocapikk/wpprobe/releases/latest) [![Kali Linux](https://img.shields.io/badge/Kali%20Linux-included-557C94?logo=kalilinux)](https://pkg.kali.org/pkg/wpprobe) [![Exegol](https://img.shields.io/badge/Exegol-included-ED1C24)](https://github.com/ThePorgs/Exegol) [![Secator](https://img.shields.io/badge/Secator-supported-4B8BBE)](https://github.com/freelabz/secator) # WPProbe 一款快速的 WordPress 插件扫描器,通过 REST API 枚举检测已安装的插件,并将其映射到已知漏洞。无需暴力破解即可检测超过 5000 个插件,使用暴力破解可检测数千个更多插件。 ## 重要提示:Wordfence API 变更 自 2026 年 3 月 9 日起,Wordfence 弃用了其 v2 API。所有 v0.10.16 之前的 WPProbe 版本的 `update-db` 功能已失效。你需要更新 WPProbe。 默认情况下,`wpprobe update-db` 从本仓库获取预构建的数据库(通过 CI 每 2 小时更新一次),因此无需 API 密钥。如果你想直接从 Wordfence 获取数据,可以选择设置一个免费的 API 密钥: 1. 在 [wordfence.com](https://www.wordfence.com) 创建账户 2. 前往 [Account > Integrations](https://www.wordfence.com/account/integrations) 并生成一个 API 密钥 3. 通过环境变量或 `--api-key` 标志进行设置 ## 快速开始 ``` go install github.com/Chocapikk/wpprobe@latest wpprobe update-db wpprobe scan -u https://example.com ``` ## 扫描模式 | 模式 | 方法 | 隐蔽性 | 覆盖范围 | |------|--------|---------|----------| | `stealthy` (默认) | REST API 端点匹配 | 高 | 5000+ 插件 | | `bruteforce` | 直接目录检查 | 低 | 10k+ 插件 | | `hybrid` | 先隐蔽模式,后暴力破解 | 中 | 最大 | ``` 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 文件挂载 ``` # 挂载当前目录用于输入/输出文件 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 需要 free API key, WPScan 需要 Enterprise API token) wpprobe update-db --api-key your_wordfence_key # 或使用 env var 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=/`),并将发现的端点与预编译的已知插件签名数据库进行匹配。这会产生极少的请求,并避免被 WAF 检测到。 **暴力破解模式** 通过 GET 请求直接检查插件目录。403 响应确认插件存在(目录列表被禁止)。200 响应通过检查目录列表中的 `readme.txt` 来验证,以避免对所有路径都返回 200 的 WordPress 实例产生误报。 **混合模式** 结合两者:首先使用隐蔽模式进行低噪声检测,然后使用暴力破解检测其余插件。 检测到的插件会与来自 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", "cvss_score": 9.8, "title": "GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection" } ] } ] } ] } ] } } ```
## 局限性 - **隐蔽模式**:某些插件不暴露 REST API 端点。已禁用或隐藏的插件可能无法被检测到。 - **暴力破解模式**:产生大量请求,可能会触发 WAF 或速率限制。受限于字典覆盖范围。 - **混合模式**:由于包含暴力破解阶段,速度比纯隐蔽模式慢。 ## 环境变量 | 变量 | 描述 | |----------|-------------| | `WORDFENCE_API_KEY` | 用于数据库更新的 Wordfence API 密钥(免费,[在此获取](https://www.wordfence.com/account/integrations)) | | `WPSCAN_API_TOKEN` | 用于数据库更新的 WPScan 企业版 API 令牌 | | `HTTP_PROXY` / `HTTPS_PROXY` / `ALL_PROXY` | 代理配置 | | `NO_PROXY` | 代理绕过规则 | ## 许可证 MIT 许可证 - 详情请参阅 LICENSE 文件。 ## 致谢 由 [@Chocapikk](https://github.com/Chocapikk) 开发。 ## 统计 Star History Chart
标签:C2日志可视化, CVE映射, EVTX分析, Go语言, Kali工具, REST API, WordPress安全, WPProbe, 加密文件系统, 密码管理, 指纹识别, 插件枚举, 插件系统, 操作系统监控, 无服务器架构, 日志审计, 用户模式钩子绕过, 程序破解, 网站安全, 请求拦截