2026年11月12日

2026年11月12日

如何检查 WordPress 插件的漏洞|WP-CLI、WPScan 与漏洞数据库的用法

本文是日语原文的本地化版本。 阅读日语原文

插件漏洞从公开到开始被攻击,间隔有时很短。基本做法是定期循环这样的流程:掌握已安装的插件及其版本,与已知漏洞对照,如果有修复版就更新。本文依次说明用 WP-CLI 确认版本、用 WPScan 对照、漏洞数据库的看法、检查是否被篡改,以及发现漏洞后的处理。命令和费用条件,是 2026 年 11 月对照各官方文档确认过的内容。

1. 列出已安装的插件和版本

首先掌握装了什么、各是什么版本。在后台的“插件 (Plugins) → 已安装的插件 (Installed Plugins)”中也可以确认,但使用 WP-CLI 可以保存列表。

# 显示名称、版本、启用/停用、是否有更新
wp plugin list --fields=name,version,status,update

# 只显示有更新的
wp plugin list --update=available

# 以 JSON 格式保存作为记录
wp plugin list --fields=name,version,status --format=json > plugins.json

已停用的插件也会出现在列表中。即使停用,文件仍留在服务器上,有漏洞的文件可能被直接访问,所以不用的要删除。WP-CLI 的基础在“用 WP-CLI 管理插件”中有说明。

2. 用 WPScan 与已知漏洞对照

WPScan 是从外部检查 WordPress 站点的命令行工具。漏洞信息要从 WPScan 的 API 获取,所以需要在 wpscan.com 创建账号、生成 API 令牌后使用。

根据 WPScan 的价格页面,免费套餐仅限非商业用途,API 每天最多调用 25 次。用于商业站点时需要付费许可。即使没有 API 令牌也能运行,但那样不会显示漏洞信息。

# 安装(通过 Ruby 的 gem 安装时)
gem install wpscan

# 使用 Docker 时
docker pull wpscanteam/wpscan

# 检查被报告存在漏洞的插件
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp

# 检测方式同时使用 passive 和 aggressive
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp --plugins-detection mixed

-e 的主要取值如下。

值 对象
vp 被报告存在漏洞的插件
ap 所有插件
p 常用的插件
vt 被报告存在漏洞的主题

插件的检测默认是 passive,即从页面的 HTML 等读取。在 HTML 中不留痕迹的插件可能检测不到,所以指定 aggressive 或 mixed 可以增加检测结果,但请求的数量也会增加。

用 WPScan 检查,只限于自己管理的站点,或已获得许可的站点。使用方法的详情也请参考“用 WPScan 检查站点的漏洞”。

3. 用漏洞数据库确认内容

WPScan 的结果,以及在安全类新闻中被点名的插件,请在下面的数据库中确认详情。

  • WPScan Vulnerability Database(wpscan.com)
  • Wordfence Intelligence(wordfence.com)
  • Patchstack Database(patchstack.com)
  • NVD(nvd.nist.gov,用 CVE 编号搜索)

需要查看的项目如下。

项目 确认的内容
受影响的版本 自己的版本是否在范围内
已修复的版本 更新后是否能解决。也有尚未出修复版的情况
所需权限 是否无需登录就能被利用,还是需要作者或订阅者的权限
严重程度(CVSS) 0~10 的数值。越高影响越大
类型 XSS、SQL 注入、权限提升、任意文件上传等

先处理无需登录就能被利用的,以及严重程度高的。对于用订阅者权限就能被利用的,如果站点开放用户注册(会员站点、商店等),要抓紧处理。

4. 确认文件是否被篡改

当漏洞有可能已被利用时,要确认文件是否还是发布时的原样。WP-CLI 的 verify-checksums 会把文件与 WordPress.org 公布的校验和进行比较。

# 检查所有插件
wp plugin verify-checksums --all

# 只检查特定的插件
wp plugin verify-checksums contact-form-7

# 检查 WordPress 核心文件
wp core verify-checksums

没有问题时,会显示类似 Success: Verified 8 of 8 plugins. 的内容。如果有被添加的文件,或内容不同的文件,会显示它们的列表。

没有在 WordPress.org 分发的付费插件没有校验和,所以无法用这种方法检查。这时,请从分发方下载同一版本,对文件进行比较。

5. 发现漏洞后的处理

# 有修复版时:更新
wp plugin update contact-form-7

# 没有修复版时:停用,不用的话就删除
wp plugin deactivate vulnerable-plugin
wp plugin delete vulnerable-plugin

# 批量更新之前,先确认会被更新的内容
wp plugin update --all --dry-run

vulnerable-plugin 只是示例。请换成实际的 slug(wp plugin list 中的 name 列)。

  • 更新之前先备份,更新之后确认主要的页面(联系表单、支付等)能够正常工作。
  • 对于一直没有出修复版、开发已经停滞的插件,请考虑迁移到功能相同的其他插件。在 WordPress.org 上被停止分发的插件,其插件页面上会显示已停止的提示。
  • 如果有被篡改的迹象,仅靠更新是不够的。还要检查是否新增了管理员用户、uploads 中是否被放置了 PHP 文件、wp-config.php 是否被改动等,必要时从备份恢复。

6. 把检查变成习惯

  • 在后台的“插件”中,可以为每个插件启用自动更新(WordPress 5.5 及以后)。先从更新后不太担心显示错乱的插件开始启用。详情请参阅“设置插件自动更新的方法”。
  • 如果用 cron 定期运行 WPScan,要注意免费额度每天 25 次和仅限非商业用途的条件。
  • 安全插件 Wordfence 也会通过扫描,提示需要更新的插件等。用法在“用 Wordfence 扫描站点”中有说明。

总结

检查插件漏洞,按下面的顺序进行:列出清单(wp plugin list)、与已知漏洞对照(WPScan 或漏洞数据库)、确认是否被篡改(wp plugin verify-checksums)、通过更新或删除来处理。删除不用的插件,是最省事的对策。

关于 WordPress 有疑问?本站运营方位于日本,仅以日语回复。 联系我们(日语)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲