深入解析 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。例如:

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:基本扫描

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

wpscan --url http://example.com --api-token YOUR_TOKEN

示例 2:枚举插件和主题

枚举所有插件和主题:

wpscan --url http://example.com -e ap,at

示例 3:密码爆破

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

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

示例 4:隐秘扫描

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

wpscan --url http://example.com --stealthy

注意事项

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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值