返回更新列表
新发布Aug 4, 2026

wpscan v4.1.0

WordPress安全扫描器,用于检测漏洞、枚举插件/主题/用户,并检查弱密码。与WPScan API集成以获取实时漏洞数据。

分享

WPScan 标志

WPScan

WordPress 安全扫描器

WPScan WordPress 漏洞数据库 - WordPress 安全插件

可维护性 覆盖率状态

安装

前提条件

  • (可选但强烈推荐:rbenv
  • Ruby >= 3.3 - 推荐:最新稳定版
  • Curl >= 7.72 - 推荐:最新稳定版
    • 7.29 版本存在段错误(segfault)
    • 低于 7.72 的版本在某些情况下可能导致 Stream error in the HTTP/2 framing layer
  • RubyGems - 推荐:最新稳定版
  • Nokogiri 可能需要通过包管理器安装某些依赖包(具体取决于操作系统),详情见 https://nokogiri.org/tutorials/installing_nokogiri.html

在渗透测试发行版中

使用渗透测试发行版(如 Kali Linux)时,建议通过包管理器(如果可用)安装/更新 wpscan。

在 macOSX 下通过 Homebrew

brew install wpscanteam/tap/wpscan

通过 RubyGems

WPScan 依赖包含原生扩展的 gem(例如 yajl-rubynokogiriffi),因此在使用 gem install wpscan 之前,必须安装可用的 C 工具链和 Ruby 开发头文件。否则,安装会失败,出现类似 Failed to build gem native extensionmake: x86_64-linux-gnu-gcc: No such file or directory 的错误(参见 #1844)。

  • Debian / Ubuntu
    sudo apt install build-essential ruby-dev
    
  • Fedora / RHEL / CentOS
    sudo dnf install @development-tools ruby-devel
    
  • Arch Linux
    sudo pacman -S base-devel ruby
    
  • Alpine
    sudo apk add build-base ruby-dev
    
  • macOS:安装 Xcode 命令行工具(xcode-select --install)。

然后安装 gem:

gem install wpscan

在 MacOSX 上,如果由于 Apple 的系统完整性保护(SIP)而引发 Gem::FilePermissionError,请安装 RVM 并重新安装 wpscan,或者运行 sudo gem install -n /usr/local/bin wpscan(参见 #1286

更新

你可以通过 wpscan --update 更新本地数据库。

更新 WPScan 本身可以通过 gem update wpscan 或包管理器完成(对于像 Kali Linux 这样的发行版非常重要:apt-get update && apt-get upgrade),具体取决于 WPScan 的(预)安装方式。

Docker

使用 docker pull wpscanteam/wpscan 拉取仓库。

枚举用户名

docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u

枚举用户名范围

docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100

** 将 u1-100 替换为你选择的用户名范围。

持久化本地数据库

该镜像在构建时内置了一份本地数据库副本。由于上述示例命令使用了 --rm,在运行期间执行的任何数据库更新都会在容器退出时丢弃,因此下一次运行将再次从(可能过时的)内置副本开始。

挂载一个命名卷到 /wpscan/.cache/wpscan/db(容器中 wpscan 用户的缓存目录)可以跨运行保留数据库,这样 wpscan --update 只会重新下载校验和实际发生变化的文件,并且 5 天过期提示的行为与本地安装相同:

docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update

首次使用时,如果命名卷不存在,将自动创建。

用法

完整的用户文档可以在以下位置找到:https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation

wpscan --url blog.tld 这将使用默认选项扫描博客,在速度和准确性之间取得良好平衡。它会进行版本检测、主题检测以及有趣发现的发现。要枚举插件、主题、用户、备份文件夹等,请使用 -e 选项(例如,-e ap 表示所有插件,-e vp 表示易受攻击的插件,-e bf 表示备份文件夹)。

如果需要更隐蔽的方法,则可以使用 wpscan --stealthy --url blog.tld。因此,使用 --enumerate 选项时,请记得相应设置 --plugins-detection,因为其默认值为 'passive'。

更多选项,请打开终端并输入 wpscan --help(如果你是从源代码构建 wpscan,则应在 git 仓库之外输入命令)。

数据库位置

数据库位置遵循 XDG 基本目录规范

  • 新安装~/.cache/wpscan/db(如果设置了 $XDG_CACHE_HOME,则为 $XDG_CACHE_HOME/wpscan/db
  • 现有安装~/.wpscan/db(旧路径,为向后兼容而保留)

运行时文件(如默认的 HTTP 缓存和 cookie jar)在设置了 $TMPDIR 时存储于 $TMPDIR/wpscan 下。否则,它们使用相同的用户级 XDG 缓存目录,例如 ~/.cache/wpscan/cache~/.cache/wpscan/cookie_jar.txt。这些默认值可以通过 --cache-dir--cookie-jar 覆盖。

要将现有安装迁移到 XDG 路径:

mv ~/.wpscan ~/.cache/wpscan

可选:WordPress 漏洞数据库 API

WPScan CLI 工具使用 WordPress 漏洞数据库 API 实时检索 WordPress 漏洞数据。为了使 WPScan 检索漏洞数据,必须通过 --api-token 选项或配置文件(如下所述)提供 API 令牌。可以通过在 WPScan.com 上注册账户来获取 API 令牌。

每天免费提供最多 25 次 API 请求,足以每天扫描大多数 WordPress 网站。当每天的 25 次 API 请求用完后,WPScan 将正常运行,但不包含任何漏洞数据。

你需要多少 API 请求?

  • 我们的 WordPress 扫描器为一个 WordPress 版本、每个已安装的插件以及每个已安装的主题各发起一次 API 请求。
  • 平均而言,一个 WordPress 网站有 22 个已安装的插件。

从文件加载 CLI 选项

WPScan 可以从配置文件中加载所有选项(包括 --url),检查以下位置(顺序:先到先得):

  • $XDG_CONFIG_HOME/wpscan/scan.json(如果设置了 XDG_CONFIG_HOME
  • $XDG_CONFIG_HOME/wpscan/scan.yml(如果设置了 XDG_CONFIG_HOME
  • ~/.config/wpscan/scan.json(如果未设置 XDG_CONFIG_HOME
  • ~/.config/wpscan/scan.yml(如果未设置 XDG_CONFIG_HOME
  • ~/.wpscan/scan.json
  • ~/.wpscan/scan.yml
  • pwd/.wpscan/scan.json
  • pwd/.wpscan/scan.yml

如果这些文件存在,将加载 cli_options 键中的选项,如果重复出现则覆盖。

例如:

~/.config/wpscan/scan.yml

cli_options:
  proxy: 'http://127.0.0.1:8080'
  verbose: true

pwd/.wpscan/scan.yml

cli_options:
  proxy: 'socks5://127.0.0.1:9090'
  url: 'http://target.tld'

在当前目录(pwd)下运行 wpscan 等同于 wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld

其他命令行选项可以使用蛇形命名法添加。例如:

cli_options:
  user_agent: "Testing UA"
  max_threads: 1
  headers: "Custom-Header: aaaa; Another Header: bbb"

将 API 令牌保存到文件中

上述功能对于将 API 令牌保存在配置文件中而无需每次通过 CLI 提供非常有用。为此,创建包含以下内容的 ~/.config/wpscan/scan.yml 文件:

cli_options:
  api_token: 'YOUR_API_TOKEN'

从环境变量加载 API 令牌(自 v3.7.10 起)

如果存在环境变量 WPSCAN_API_TOKEN,则 API 令牌将自动从该变量加载。如果同时提供了 --api-token CLI 选项,则将使用 CLI 提供的值。

API 服务状态

如果你遇到 WPScan API 连接问题,可以在 https://status.wpscan.com/ 查看服务状态。当发生 API 连接错误时,WPScan 会在错误消息中包含状态页面的链接。

枚举用户名

wpscan --url https://target.tld/ --enumerate u

枚举用户名范围

wpscan --url https://target.tld/ --enumerate u1-100

** 将 u1-100 替换为你选择的用户名范围。

枚举备份文件夹

wpscan --url https://target.tld/ --enumerate bf

这将检查流行 WordPress 备份插件创建的备份文件夹。这些文件夹可能包含敏感数据,如数据库转储、配置文件或完整站点备份。

许可证

WPScan 公共源代码许可证

WPScan 软件(以下简称“WPScan”)采用双重许可 - 版权所有 2011-2019 WPScan 团队。

涉及 WPScan 商业化的情况需要商业非免费许可证。否则,可以根据以下条款免费使用 WPScan。

1. 定义

1.1 “许可证”指本文档。

1.2 “贡献者”指创建、为创建做出贡献或拥有 WPScan 的每个个人或法律实体。

1.3 “WPScan 团队”指 WPScan 的核心开发者。

2. 商业化

商业用途是指以商业优势或货币补偿为目的的使用。

商业化的示例情况包括:

  • 使用 WPScan 提供商业化的管理型/软件即服务(SaaS)服务。
  • 将 WPScan 作为商业产品或作为其一部分进行分发。
  • 将 WPScan 用作增值服务/产品。

不需要商业许可证(因此在以下条款范围内)的示例情况包括(但不限于):

  • 渗透测试人员(或渗透测试组织)使用 WPScan 作为其评估工具集的一部分。
  • 渗透测试 Linux 发行版,包括但不限于 Kali Linux、SamuraiWTF、BackBox Linux。
  • 使用 WPScan 测试你自己的系统。
  • 任何非商业用途的 WPScan。

如果你需要购买商业许可证,或者不确定是否需要购买商业许可证,请联系我们 - [email protected]

免费使用条款和条件:

3. 再分发

在以下条件下允许再分发:

  • 随 WPScan 提供未经修改的许可证。
  • 随 WPScan 提供未经修改的版权声明。
  • 不与商业化条款冲突。

4. 复制

在不与再分发条款冲突的前提下,允许复制。

5. 修改

在不与再分发条款冲突的前提下,允许修改。

6. 贡献

任何贡献均视为贡献者授予 WPScan 团队无限、非排他性的权利,以重复使用、修改和重新许可贡献者的内容。

7. 支持、更新和维护

WPScan 按“现状”提供,不附带任何支持、更新或维护。支持、更新和维护可由 WPScan 团队自行决定是否提供。

8. 免责声明

WPScan 根据本许可证按“现状”提供,不附带任何明示、暗示或法定的保证,包括但不限于对 WPScan 无缺陷、适销性、适用于特定目的或不侵权的保证。

9. 责任限制

在法律允许的范围内,WPScan 按“现状”提供。WPScan 团队在任何情况下均不对因 WPScan 的行为、故障、错误和/或 WPScan 与终端设备、计算机、其他软件或任何第三方、终端设备、计算机或服务之间的任何其他交互而产生的任何损害、成本、费用或任何其他支付承担责任。

10. 声明

未经事先双方同意对网站运行 WPScan 可能在你所在国家属违法行为。WPScan 团队不承担任何责任,并且对 WPScan 的任何误用或造成的损害概不负责。

11. 商标

“wpscan”一词是注册商标。本许可证不授予使用“wpscan”商标或 WPScan 标志的权利。

分类