Whaletask/wp-security-audit-toolkit
GitHub: Whaletask/wp-security-audit-toolkit
Go 编写的纯外部 WordPress 安全审计工具,通过非破坏性黑盒检查评估站点公开攻击面与版本状态。
Stars: 0 | Forks: 0
# WP Security Audit Toolkit
使用 Go 实现的纯外部 WordPress 表面审计工具。
本项目专为通过主页 URL 作为唯一输入,安全地评估外部 WordPress 网站而构建。它侧重于检测、版本智能分析、公共攻击面可见性以及升级指导,不涉及暴力破解、漏洞利用执行或需认证的操作。
## 范围
- 输入:目标主页 URL,例如 `https://example.com/`
- 模式:纯外部,黑盒评估
- 安全性:仅限非破坏性检查
- 主要输出:易读的文本报告或机器可读的 JSON
## 当前 WordPress 基准版本
该工具包在运行时从官方 WordPress API 解析最新的稳定版 WordPress 核心版本。截至 **2026-05-10**,最新的官方稳定版本为 **6.9.4**。
## 首个版本的功能
- 规范并验证主页 URL 目标
- 检测网站是否为 WordPress
- 在可用时从公共信号推断 WordPress 核心版本
- 检查检测到的核心版本是否已过时
- 检查公共登录页、管理后台、XML-RPC 和 REST API 表面
- 应用被动、安全主动和扩展的纯外部检查的扫描配置文件
- 通过延迟、抖动和冷却控制来调整出站请求的节奏
- 在本地缓存上游元数据以减少重复的版本检查流量
- 从响应头检测可能的 CDN 或反向代理边缘提供商
- 显示更丰富的技术端点分类和 HTTP 响应上下文
- 在报告中包含 TLS、Cookie、重定向链和完整的主页头信息详情
- 从资源路径指纹识别公开暴露的 WordPress 插件和主题别名
- 将发现的插件和主题版本与 WordPress.org 元数据和公共漏洞数据进行关联
- 探测常见的工件暴露路径,例如 `license.txt`、`readme.html`、`.git/config`、`.env` 和 `debug.log`
- 以详细模式打印实时扫描进度
- 返回包含证据和修复指导的发现结果
- 支持 `text` 和 `json` 输出格式
- 将报告直接导出为 `.txt` 或 `.json` 文件
## 超出范围
- 暴力破解登录尝试
- 凭据填充
- 漏洞利用执行
- SQL 注入自动化
- 需认证的管理员操作
- 插件安装或服务器端代码执行
## 项目元数据
- 组织:Whale Task Co., Ltd.
- 作者:Chalothorn Chavalitchevinkul
- 许可证:MIT
## 快速开始
### 本地
```
go run ./cmd/wpatk scan https://example.com/
```
简写形式:
```
go run ./cmd/wpatk https://example.com/
```
JSON 输出:
```
go run ./cmd/wpatk scan -format json https://example.com/
```
被动配置:
```
go run ./cmd/wpatk scan -profile passive https://example.com/
```
带有较慢节奏的扩展配置:
```
go run ./cmd/wpatk scan \
-profile extended \
-delay 500ms \
-jitter 250ms \
-cooldown-sensitive 2s \
https://example.com/
```
扫描时的详细操作员输出:
```
go run ./cmd/wpatk scan -verbose -profile extended https://example.com/
```
将文本报告写入文件:
```
go run ./cmd/wpatk scan -output report.txt https://example.com/
```
将 JSON 报告写入文件:
```
go run ./cmd/wpatk scan -format json -output report.json https://example.com/
```
扫描前刷新本地缓存:
```
go run ./cmd/wpatk scan -refresh-cache https://example.com/
```
## 示例输出
```
Target: https://example.com/
Scanned At: 2026-05-10T11:00:00Z
WordPress Detected: true
Confidence: high
Detected Core Version: 6.9.3
Latest Core Version: 6.9.4
Update Status: outdated
Latest Version Source: cache
Requests Made: 6
Cache State: enabled
HTTP:
- homepage status: 200
- final url: https://example.com/
- server: cloudflare
Edge:
- provider: Cloudflare
signal: CF-RAY present
Endpoints:
- admin: exposed (200)
classification: admin-login-flow
final url: https://example.com/wp-login.php?redirect_to=/wp-admin/
note: admin route resolved to a login form; authentication is still required
```
## Docker
构建镜像:
```
docker build -t wpatk:latest .
```
运行扫描:
```
docker run --rm wpatk:latest scan https://example.com/
```
## Docker Compose
使用环境变量设置目标:
```
TARGET=https://example.com/ docker compose run --rm wpatk
```
## CLI 参考
```
wpatk scan [flags]
wpatk
Flags:
-format string
output format: text or json (default "text")
-output string
write the report to a file instead of stdout
-profile string
scan profile: passive, safe-active, or extended
-max-requests int
maximum outbound requests for the target scan (default 24)
-delay duration
base delay between outbound requests (default 250ms)
-jitter duration
additional random delay added between requests (default 100ms)
-cooldown-sensitive duration
extra delay after sensitive endpoints (default 1s)
-cache-dir string
directory for local cache files (default ".cache/wpatk")
-cache-ttl duration
maximum age for cached upstream metadata (default 12h)
-no-cache
disable local cache reads and writes
-refresh-cache
ignore fresh cache entries and re-fetch upstream metadata
-verbose
print live scan progress and technical steps to stderr
-timeout duration
HTTP timeout (default 15s)
-user-agent string
HTTP user agent
-insecure
allow insecure TLS certificates
```
## 仓库结构
```
cmd/wpatk/ CLI entrypoint
internal/cache/ local JSON cache for upstream metadata
internal/cli/ argument parsing and command execution
internal/report/ text and JSON output rendering
internal/wordpress/ detection, endpoint checks, pacing, version logic
```
## 最佳实践设计选择
- 该工具接受主页 URL,而不是尝试从主机名或 IP 猜测目标。
- 请求是受限的、只读的,适合外部验证。
- 扫描配置文件将低噪声的被动检查与更广泛但仍然安全主动的探测区分开来。
- 请求节奏增加了延迟、抖动和敏感端点的冷却时间,以减少嘈杂的流量峰值。
- 缓存上游元数据减少了对 WordPress.org 的重复调用,同时保持版本检查最新。
- 感知重定向的端点分类可防止误导性标签,例如将管理员登录重定向视为直接的管理员访问。
- CDN 和反向代理检测有助于操作员了解头信息和行为是否可能受到边缘层的塑造。
- 运行时最新版本查找避免了过时的硬编码升级建议。
- 输出包含证据和修复建议,而不仅仅是通过/失败标签。
- 在首个版本中,代码仅使用 Go 标准库,以保持构建和审计开销最低。
## 配置文件
- `passive`:仅进行主页指纹识别和最新版本智能分析。不探测 `readme.html` 或端点。
- `safe-active`:默认模式。增加对 `readme.html`、登录页、管理后台、XML-RPC 和 REST API 的检查。
- `extended`:在 `safe-active` 的基础上构建,并检查公共 `robots.txt`、`wp-cron.php` 和 `admin-ajax.php`。
## 缓存
- 默认缓存目录:`.cache/wpatk`
- 默认上游元数据 TTL:`12h`
- 最新的 WordPress 核心版本查找优先使用最新的缓存。
- 如果实时的 WordPress API 不可用,扫描器可以在使用内置基准版本之前回退到过期的缓存元数据。
## 技术输出
- `-verbose` 在 `stderr` 打印实时扫描步骤,同时保持报告输出整洁。
- 文本报告现在包含主页 HTTP 元数据、重定向行为、TLS 摘要、Cookie 标志、完整的主页头信息、端点分类以及检测到的边缘提供商信号。
- 端点分类区分 `login-form`、`admin-login-flow`、`redirected-to-login`、`api-index`、`restricted` 和类似状态。
- JSON 报告包含结构化的重定向链、安全头、Cookie 和 TLS 字段,供下游工具使用。
- 扩展报告现在包含 `plugins`、`themes`、`artifacts` 和 `origin` 部分,用于更安全的纯外部情报收集。
## 计划的下一步
- 从公共资产枚举插件和主题
- 与 WordPress.org 元数据进行版本比较
- 漏洞情报源适配器
- 多站点检测
- 按目标缓存的指纹和扫描差异对比
- 更强大的证据收集和导出格式,如 SARIF 和 HTML
- 速率限制和并发目标扫描
## 法律和道德使用
仅在您拥有或获得明确授权评估的系统上使用此工具包。纯外部操作并不消除获得许可的必要性。
标签:AES-256, CDN识别, DNS枚举, DNS查询, EVTX分析, Go语言开发, HTTP请求探测, SEO安全检测, Snort++, URL发现, Web安全, WordPress安全, 主题安全检测, 外部扫描, 安全审计工具包, 安全检测, 实时处理, 密码管理, 插件漏洞检测, 插件系统, 操作系统监控, 攻击面分析, 无线安全, 日志审计, 渗透测试辅助, 漏洞评估, 版本指纹识别, 版权保护, 网站安全, 网络安全工具, 蓝队分析, 被动扫描, 请求拦截, 黑盒测试