CVE-2025-5548 的安全研究与复现:FreeFloat FTP Server 1.0 中的一个基于栈的缓冲区溢出。包含二进制分析、崩溃复现,以及用于漏洞研究的环境搭建。
针对 FreeFloat FTP 服务器 1.0 中经典基于栈的缓冲区溢出的专业研究与漏洞利用开发。 本实验室演示了从二进制逆向到功能完备的 RCE 的完整过渡。
本仓库记录了 CVE-2025-5548 的分析与利用过程。尽管现代系统已具备先进的防护机制,但分析 FreeFloat FTP 等遗留软件仍然是漏洞研究人员的基础性支柱。
本研究遵循演讲 "通往你第一个 CVE 的道路" 中讨论的原则,强调对旧桌面应用程序进行逆向工程是该领域新手最现实的入门途径。
[模糊测试] ──► [EIP 控制] ──► [坏字符分析] ──► [JMP ESP 指令片段] ──► [RCE]
NOOP 命令进行模糊测试以触发内存损坏。\x00\x0a\x0d)。JMP ESP 指令片段将执行重定向到自定义的 Metasploit shellcode。注意: 所有测试均在隔离的仅主机(host-only)网络网段中进行。
| 类别 | 工具 |
|---|---|
该漏洞的存在是因为服务器使用不安全的 C 函数(如 strcpy)处理命令,且未进行正确的长度校验。
// Simplified representation of the vulnerable handler
char buffer[256];
strcpy(buffer, user_input); // No bounds checking
当通过 NOOP 命令发送长字符串时,它会溢出本地栈缓冲区,最终覆盖保存的返回地址。通过控制该地址,我们可以让 CPU 转而执行我们自己的指令。
特别感谢 TheMalwareGuardian 对遗留漏洞的研究,以及他在漏洞研究中采用的教育式方法。
| 组件 | 操作系统 / 版本 | 角色 |
|---|
| 目标服务器 | Windows 10/11 (VM) | FreeFloat FTP 服务器 1.0 |
| 攻击机 | Kali Linux / Windows | 漏洞利用投递(Python 3) |
| 调试器 | Immunity Debugger | 动态分析与 Mona.py |
| 反汇编器 | IDA Pro 8.4 | 静态分析与逆向 |
| 逆向 |
| IDA Pro, Immunity Debugger |
| 利用 | Python 3 (Socket), Mona.py, Metasploit (msfvenom) |
| 方法论 | 基于栈的缓冲区溢出 |
| 参考资源 | TheMalwareGuardian - CVE-2025-5548 |
| 目录 | 内容 | 状态 |
|---|
| 01-Environment | 实验环境与调试器的搭建说明。 | ✅ 就绪 |
| 02-Exploitation | 核心方法论: 逐步进行漏洞利用开发。 | ✅ 就绪 |
| Exploits | 完整的 Python 脚本套件(从模糊测试到 Shellcode)。 | ✅ 就绪 |
| 03-Images | 崩溃、偏移量与指令片段(gadget)的文档记录。 | ✅ 就绪 |