wpscanteam/wpscan
GitHub: wpscanteam/wpscan
WPScan 是一款专注于 WordPress 的安全扫描工具,能够检测核心、插件、主题等漏洞并提供详细报告。
Stars: 9487 | Forks: 1329
WPScan
WordPress 安全扫描器
WPScan WordPress 漏洞数据库 - WordPress 安全插件
# 安装
## 前置条件
- (可选但强烈推荐:[RVM](https://rvm.io/rvm/install))
- Ruby >= 3.0 - 推荐:最新
- Curl >= 7.72 - 推荐:最新
- 7.29 版本存在段错误
- 低于 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
```
gem install wpscan
```
在 MacOSX 上,如果由于 Apple 的系统完整性保护(SIP)而抛出 ```Gem::FilePermissionError```,可以安装 RVM 并重新安装 wpscan,或运行 ```sudo gem install -n /usr/local/bin wpscan```(参见 [#1286](https://github.com/wpscanteam/wpscan/issues/1286))
# 更新
你可以使用 ```wpscan --update``` 更新本地数据库。
WPScan 本身的更新可以通过 ```gem update wpscan``` 或包管理器完成(对 Kali Linux 等发行版尤为重要:```apt-get update && apt-get upgrade```),具体取决于 WPScan 的(预)安装方式。
# Docker - Docker
使用 ```docker pull wpscanteam/wpscan``` 拉取镜像。
枚举用户名
```
docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u
```
枚举一系列用户名
```
docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
```
** 将 u1-100 替换为你选择的范围。
# 使用
完整的用户文档可在此处查阅;https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
```wpscan --url blog.tld``` 将使用默认选项扫描博客,在速度和准确性之间取得良好平衡。例如,插件将被被动检查,但其版本将使用混合检测模式(被动 + 主动)。潜在的配置备份文件也将被检查,以及其他有趣的发现。
如果需要更隐蔽的方式,可使用 ```wpscan --stealthy --url blog.tld```。
因此,在使用 ```--enumerate``` 选项时,别忘了相应设置 ```--plugins-detection```,因为默认是 'passive'。
想了解更多选项,请打开终端并输入 ```wpscan --help```(如果你是从源码构建 wpscan,则应在 git 仓库外执行该命令)
数据库位于 ~/.wpscan/db
## 可选:WordPress 漏洞数据库 API
WPScan CLI 工具使用 [WordPress Vulnerability Database API](https://wpscan.com/api) 实时获取 WordPress 漏洞数据。要让 WPScan 获取漏洞数据,必须通过 `--api-token` 选项或配置文件提供 API 令牌,详情见下文。可通过在 [WPScan.com](https://wpscan.com/register) 注册账户获取 API 令牌。
每天免费提供 **25** 次 API 请求,这足以对大多数 WordPress 网站进行至少一次每日扫描。当每日 25 次 API 请求耗尽时,WPScan 将继续正常工作,但不提供任何漏洞数据。
### 需要多少 API 请求?
- 我们的 WordPress 扫描器会为 WordPress 版本发送一次 API 请求,为每个已安装插件发送一次请求,为每个已安装主题发送一次请求。
- 平均而言,一个 WordPress 网站有 22 个已安装插件。
## 从文件加载 CLI 选项
WPScan 可以从配置文件加载所有选项(包括 `--url`),检查以下位置(顺序从前到后):
- `~/.wpscan/scan.json`
- `~/.wpscan/scan.yml`
- `pwd/.wpscan/scan.json`
- `pwd/.wpscan/scan.yml`
如果这些文件存在,将加载 `cli_options` 键中的选项,并在出现两次时覆盖。
例如:
`~/.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 提供。为此,请创建 ~/.wpscan/scan.yml 文件并写入以下内容:
```
cli_options:
api_token: 'YOUR_API_TOKEN'
```
## 从环境变量加载 API 令牌(自 v3.7.10 起)
如果存在环境变量 `WPSCAN_API_TOKEN`,API 令牌将自动从中加载。如果同时提供了 `--api-token` CLI 选项,则使用 CLI 中的值。
## 枚举用户名
```
wpscan --url https://target.tld/ --enumerate u
```
枚举一系列用户名
```
wpscan --url https://target.tld/ --enumerate u1-100
```
** 将 u1-100 替换为你选择的范围。
# 许可证
## WPScan 公共源许可证
WPScan 软件(以下简称 “WPScan”)采用双重许可 - 版权所有 2011-2019 WPScan 团队。
涉及 WPScan 商业化的情况需要商业非自由许可证。否则,WPScan 可在以下条款下免费使用。
### 1. 定义
1.1 “许可证” 指本文件。
1.2 “贡献者” 指创建、参与创建或拥有 WPScan 的个人或法律实体。
1.3 “WPScan 团队” 指 WPScan 的核心开发者。
### 2. 商业化
商业使用是指旨在获取商业优势或金钱报酬的使用。
商业化的示例包括:
- 使用 WPScan 提供商业托管/软件即服务(SaaS)服务。
- 将 WPScan 作为商业产品或其一部分进行分发。
- 将 WPScan 用作增值服务/产品。
以下示例不需要商业许可证,因而受以下条款约束(但不限于):
- 渗透测试人员(或渗透测试组织)在评估工具包中使用 WPScan。
- 包含但不限于 Kali Linux、SamuraiWTF、BackBox Linux 等渗透测试 Linux 发行版。
- 使用 WPScan 测试自己的系统。
- 任何非商业使用 WPScan。
如果需要购买商业许可证或不确定是否需要购买商业许可证,请联系 - contact@wpscan.com。
免费使用条款与条件;
### 3. 再分发
在满足以下条件的前提下允许再分发:
- 与 WPScan 一起提供未修改的许可证。
- 与 WPScan 一起提供未修改的版权声明。
- 不与商业化条款冲突。
### 4. 复制
只要不与再分发条款冲突,即可复制。
### 5. 修改
只要不与再分发条款冲突,即可修改。
### 6. 贡献
任何贡献均视为贡献者授予 WPScan 团队无限制、非独占的权利,以重新使用、修改和重新许可贡献者的内容。
### 7. 支持
WPScan 在“按原样”基础上提供,不提供任何支持、更新或维护。支持、更新和维护可能由 WPScan 团队自行决定。
### 8. 免责声明
WPScan 在本许可证下以“按原样”提供,不提供任何形式的明示、暗示或法定担保,包括但不限于 WPScan 无缺陷适销性、特定用途适用性或不侵权的担保。
### 9. 责任限制
在法律允许的范围内,WPScan 以“按原样”提供。WPScan 团队对因 WPScan 的行为、失效、错误或与终端设备、计算机、其他软件或任何第三方、终端设备、计算机或服务之间的任何交互而产生的任何损害、费用、支出或其他付款概不承担任何责任,且不设上限。
### 10. 免责声明
在未经双方事先同意的情况下对网站运行 WPScan 在某些国家可能是非法的。WPScan 团队不承担任何责任,也不对 WPScan 造成的任何误用或损害负责。
### 11. 商标
“wpscan” 为注册商标。本许可证不授予使用 “wpscan” 商标或 WPScan 标志的权利。
标签:AST分析, CMS安全, DNS解析, GitHub项目, Go, JavaScript, Kali Linux, Ruby工具, Semgrep, TypeScript, WAF测试, WordPress安全扫描, 代码扫描, 代码生成, 安全插件, 开源项目, 渗透测试工具, 网络安全, 自动化安全测试, 请求拦截, 隐私保护