深入解析 WPScan:用法与参数详解

深入解析 WPScan:用法与参数详解

WPScan 是一款由 WPScan Team 开发的开源工具,专为扫描 WordPress 网站的安全性而设计。它能够帮助安全研究人员、渗透测试人员以及网站管理员发现 WordPress 站点中的漏洞、配置问题及其他潜在风险。本文将基于 wpscan --help 的输出,详细介绍 WPScan 的用法和常用参数,旨在帮助用户全面掌握这款工具的功能。


什么是 WPScan?

WPScan 是一个命令行工具,最初由 Ryan Dewhurst(@ethicalhack3r)创建,现由 Automattic 赞助。它通过扫描目标 WordPress 站点,检测核心版本、插件、主题的漏洞,并支持用户枚举和密码爆破等功能。当前版本(基于帮助信息)为 3.8.28,支持丰富的选项和灵活的配置。

运行 WPScan 时,会显示如下标志:

复制代码
         __          _______   _____
         \ \        / /  __ \ / ____|
          \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
           \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
            \  /\  /  | |     ____) | (__| (_| | | | |
             \/  \/   |_|    |_____/ \___|\__,_|_| |_|

         WordPress Security Scanner by the WPScan Team
                         Version 3.8.28
       Sponsored by Automattic - https://automattic.com/
       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart

基本用法

WPScan 的基本用法格式为:

复制代码
wpscan [options]

其中,--url 是大多数扫描任务的必填选项,用于指定目标 WordPress 站点的 URL。例如:

bash 复制代码
wpscan --url http://example.com

如果未提供协议,默认使用 http。支持的协议包括 httphttps


核心参数详解

以下是 wpscan --help 中列出的主要参数及其功能的详细说明:

1. 基本选项

  • -h, --help

    显示简要帮助信息并退出,适合快速查看基本用法。

  • --hh

    显示完整帮助信息,包含更多高级选项(--help 未完全列出所有内容)。

  • --version

    显示当前 WPScan 版本(例如 3.8.28)并退出。

  • --url URL

    指定目标 WordPress 站点的 URL。这是运行扫描的核心参数,除非使用 --update-h--hh--version,否则必须提供。

    示例:--url https://example.com

  • -v, --verbose

    启用详细模式,输出更多扫描过程中的信息,便于调试或深入分析。

  • --[no-]banner

    是否显示 WPScan 的启动标志。默认值为 true(显示)。使用 --no-banner 可禁用。

2. 输出控制

  • -o, --output FILE

    将扫描结果保存到指定文件。例如:-o scan_result.txt

  • -f, --format FORMAT

    指定输出格式。可选值包括:

    • cli-no-colour / cli-no-color:无颜色终端输出。
    • cli:默认带颜色的终端输出。
    • json:JSON 格式,便于程序化处理。
      示例:-f json -o result.json

3. 扫描模式

  • --detection-mode MODE

    设置检测模式,影响插件和主题的探测方式。可选值:

    • mixed(默认):混合模式,结合被动和主动检测。
    • passive:仅使用被动方法(例如分析页面源码),减少被检测风险。
    • aggressive:主动发送请求以确认漏洞,可能更准确但更容易触发防护。
      示例:--detection-mode aggressive
  • --force

    强制扫描,即使目标未运行 WordPress 或返回 403 状态码。通常用于不确定目标是否为 WordPress 的情况。

4. 网络与请求配置

  • --user-agent, --ua VALUE

    指定自定义 User-Agent。例如:--ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

  • --random-user-agent, --rua

    为每次请求随机生成 User-Agent,降低被防火墙识别的风险。

  • -t, --max-threads VALUE

    设置最大线程数,控制并发请求数量。默认值为 5。

    示例:-t 20(提高扫描速度,但可能增加服务器负载)。

  • --throttle MilliSeconds

    设置请求之间的延迟(毫秒)。启用时,线程数强制为 1。

    示例:--throttle 500(每 0.5 秒发送一个请求)。

  • --request-timeout SECONDS

    设置请求超时时间,默认 60 秒。

    示例:--request-timeout 30

  • --connect-timeout SECONDS

    设置连接超时时间,默认 30 秒。

  • --disable-tls-checks

    禁用 SSL/TLS 证书验证,并强制使用 TLS 1.0+(需要 cURL 7.66+)。适用于目标站点证书无效的情况。

  • --proxy protocol://IP:port

    通过代理发送请求,支持的协议取决于 cURL 配置。例如:--proxy http://127.0.0.1:8080

  • --proxy-auth login:password

    指定代理认证凭据。例如:--proxy-auth user:pass

  • --cookie-string COOKIE

    设置请求中的 Cookie,例如:--cookie-string "session=abc123; user=admin"

  • --cookie-jar FILE-PATH

    指定用于读写 Cookie 的文件,默认路径为 /tmp/wpscan/cookie_jar.txt

5. 枚举功能

  • -e, --enumerate [OPTS]

    执行枚举任务,探测目标站点的组件和信息。可选值包括:

    • vp:仅枚举存在漏洞的插件。
    • ap:枚举所有插件。
    • p:枚举热门插件。
    • vt:仅枚举存在漏洞的主题。
    • at:枚举所有主题。
    • t:枚举热门主题。
    • tt:枚举 Timthumb 文件。
    • cb:枚举配置文件备份。
    • dbe:枚举数据库导出文件。
    • u:枚举用户 ID(默认范围 1-10,例如 u1-5)。
    • m:枚举媒体 ID(默认范围 1-100,需要"朴素"链接设置)。
      多选项用逗号分隔,例如:-e vp,vt,cb
      默认值:vp,vt,tt,cb,dbe,u,m
  • --exclude-content-based REGEXP_OR_STRING

    排除匹配指定正则表达式或字符串的响应(不区分大小写),适用于过滤无关内容。

  • --plugins-detection MODE

    设置插件检测模式(mixedpassiveaggressive),默认 passive

  • --plugins-version-detection MODE

    设置插件版本检测模式(mixedpassiveaggressive),默认 mixed

  • --exclude-usernames REGEXP_OR_STRING

    排除匹配的用户名,减少枚举干扰。

6. 密码攻击

  • -P, --passwords FILE-PATH

    指定密码列表文件,用于密码爆破。例如:-P /usr/share/wordlists/rockyou.txt

  • -U, --usernames LIST

    指定用户名列表,支持逗号分隔或文件路径。例如:-U admin,user1,user2-U /tmp/users.txt

  • --password-attack ATTACK

    强制使用指定的攻击模式,可选值:

    • wp-login:通过登录页面爆破。
    • xmlrpc:通过 XML-RPC 接口爆破。
    • xmlrpc-multicall:通过 XML-RPC 多重调用爆破(仅适用于 WordPress < 4.4)。
      示例:--password-attack wp-login
  • --multicall-max-passwords MAX_PWD

    设置 XMLRPC 多重调用每次请求的最大密码数,默认 500。

  • --login-uri URI

    指定自定义登录页面 URI,默认 /wp-login.php。例如:--login-uri /custom-login

7. 其他高级选项

  • --wp-content-dir DIR

    指定自定义 wp-content 目录路径,例如 --wp-content-dir content

  • --wp-plugins-dir DIR

    指定自定义插件目录路径,例如 --wp-plugins-dir content/plugins

  • --api-token TOKEN

    使用 WPScan API 令牌显示漏洞数据,需在 https://wpscan.com/profile 获取。

  • --[no-]update

    是否更新本地数据库,默认 false。运行 --update 更新漏洞数据。

  • --stealthy

    隐秘模式别名,等同于 --random-user-agent --detection-mode passive --plugins-version-detection passive,降低被检测风险。


实用示例

示例 1:基本扫描

扫描目标站点并检测漏洞:

bash 复制代码
wpscan --url http://example.com --api-token YOUR_TOKEN

示例 2:枚举插件和主题

枚举所有插件和主题:

bash 复制代码
wpscan --url http://example.com -e ap,at

示例 3:密码爆破

对指定用户名进行密码爆破:

bash 复制代码
wpscan --url http://example.com -U admin -P /usr/share/wordlists/rockyou.txt --password-attack wp-login -t 20

示例 4:隐秘扫描

使用随机 User-Agent 和被动模式:

bash 复制代码
wpscan --url http://example.com --stealthy

注意事项

  1. 合法性:WPScan 应仅用于授权测试,未经许可扫描他人网站可能违法。
  2. 防护规避 :高线程数或频繁请求可能触发 WAF,使用 --throttle 或代理降低风险。
  3. API 令牌:免费用户有每日查询限制,需注册获取令牌以查看漏洞详情。

总结

WPScan 是一个功能强大且灵活的 WordPress 安全扫描工具,通过其丰富的参数,用户可以实现从基本信息收集到深度漏洞探测的多种任务。无论是枚举组件、检测漏洞还是执行密码攻击,合理配置参数都能显著提升效率和准确性。希望本文的详细解析能帮助你更好地掌握 WPScan 的用法,安全地探索和保护 WordPress 站点!

相关推荐
2501_9160137442 分钟前
日常开发中,iOS 性能调优我们怎么做?
websocket·网络协议·tcp/ip·http·网络安全·https·udp
半路_出家ren1 小时前
传输层协议 1.TCP 2.UDP
网络·网络安全·udp·wireshark·kali·tcp·gns3
TJ-周月年3 小时前
2025FIC初赛(手机)
笔记·网络安全
半路_出家ren5 小时前
Python操作MySQL
开发语言·python·计算机网络·mysql·网络安全
Haicaji5 小时前
2025ISCC练武校级赛部分题解WP
web安全·网络安全
上海云盾商务经理杨杨9 小时前
2025年链游行业DDoS与CC攻击防御全解析:高带宽时代的攻防博弈
网络·web安全·网络安全·ddos·web3.0
敲上瘾14 小时前
从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建
服务器·网络·网络协议·http·网络安全·https·密码学
sky北城16 小时前
DVWA靶场保姆级通关教程--03CSRF跨站请求伪造
linux·web安全·网络安全
独行soc20 小时前
2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
linux·运维·服务器·学习·面试·职场和发展·渗透测试