WPScan 使用实战:WordPress 漏洞扫描指南

适用场景

WPScan 使用实战面向 WordPress 站点管理员与安全运维人员,用于对 WordPress 核心、主题、插件及用户账户进行自动化漏洞扫描。当站点疑似被入侵、升级前安全检查、或定期巡检时,WPScan 能在几分钟内列出已安装组件的已知漏洞(CVE)与弱配置,是 WordPress 安全检测的标准工具。

前置条件

  • 本机已安装 Ruby 2.7+ 与 gem 包管理器
  • 目标站点授权:仅扫描自有或已获书面授权的 WordPress 站点
  • 推荐注册 WPScan API Token(免费,wpscan.com 注册即可),可解锁漏洞数据库查询

原理说明

WPScan 的原理基于 指纹识别 + 版本比对。它通过三种途径识别目标:其一,读取 WordPress 默认路径(如 /wp-json//readme.html)确认核心版本;其二,扫描主题与插件的 readme.txt 文件获取组件及版本号;其三,通过枚举接口(如作者归档页 /?author=1)发现用户名。得到版本后,WPScan 将版本号与本地漏洞数据库(WPVulnDB,由 API Token 激活)比对,命中即输出对应 CVE 与修复建议。攻击面枚举加上数据库比对,使 WPScan 能在不触碰业务数据的前提下完成快速体检。

操作步骤

1. 安装 WPScan

gem install wpscan
wpscan --version

Linux 也可用发行版包:apt install wpscan(Kali 预装)。

2. 基础漏洞扫描

API_TOKEN 替换为注册获得的 Token,执行核心+组件全面扫描:

wpscan --url https://www.example.com --api-token API_TOKEN \
  --enumerate vp,vt,u --plugins-detection aggressive

参数说明:–enumerate vp 只枚举有漏洞的插件,vt 为有漏洞的主题,u 枚举用户;–plugins-detection aggressive 强制深度探测插件列表。

3. 扫描结果解读

[+] WordPress version 6.4.3 identified
[!] Title: WordPress < 6.4.3 - Authenticated (Admin+) RCE
    Fixed in: 6.4.3
[+] WordPress theme in use: twentytwentyfour - v1.0
[!] No version vulnerabilities identified
[i] User(s) Identified:
[+] admin
[+] editor01

重点关注 [!] 标记的漏洞条目与 Fixed in 版本,优先升级对应组件。

4. 单独枚举用户与弱口令检测

# 仅枚举用户(为社工与弱口令验证做准备)
wpscan --url https://www.example.com --enumerate u
# 对枚举到的用户做密码喷洒(谨慎使用,注意频控)
wpscan --url https://www.example.com --passwords top-passwords.txt \
  --usernames admin --max-threads 5

弱口令测试必须在授权范围内进行,并控制线程数避免触发 WAF 封禁。

配置验证

# 1. 对自有测试站执行完整扫描,确认输出包含核心版本、主题、插件与用户四类信息
# 2. 对比 WPVulnDB:访问 wpscan.com/vulnerability 手动核对扫描报告中的 CVE 是否一致
# 3. 复扫验证:升级有漏洞的插件后重跑同一命令,对应 [!] 条目应消失
# 4. 日志验证:查看目标站 access.log,确认扫描产生了 /readme.txt、/?author=1 等探测请求

常见问题

Q1:提示 "Scan Aborted: no WPVulnDB data" 怎么办?

该提示表示未提供 API Token 或 Token 失效,漏洞数据库无法加载。到 wpscan.com 注册并复制 Token,在命令中加入 --api-token 参数;也可先做不依赖数据库的枚举扫描(--enumerate u,vp 仍可识别组件与用户)。

Q2:扫描不到任何漏洞,是否代表站点安全?

不能。WPScan 是 已知漏洞扫描器,无法发现业务逻辑漏洞与 0day;且若站点做了组件伪装(如删除 readme.txt、隐藏版本号),扫描结果可能失真。建议将 WPScan 作为巡检基线,结合日志审计、文件完整性校验(如 wp verify-checksums)与 WAF 日志交叉分析。

总结

WPScan 通过指纹识别与 WPVulnDB 比对,为 WordPress 站点提供核心、插件、主题与用户的四维漏洞体检。建议将其纳入月度巡检流程:注册 API Token、记录基线扫描报告、升级组件后复扫比对。同时牢记工具边界——它只覆盖已知漏洞,业务层安全仍需人工测试与代码审计配合。