教育性资源库,记录了对 CVE-2025-5548(FreeFloat FTP 服务器缓冲区溢出)的分析与利用过程。包含可复用的漏洞分析方法论、静态逆向工程、逐步利用流程,以及结合模糊测试与调试技术的 0-day 攻击方法指南。

Anderson Steven —— 网络安全硕士,模块 6(漏洞) 个人提交:漏洞分析与利用方法论
我不想只是提交一份“这是可用的 exploit”。这个仓库
记录的是我面对内存破坏漏洞时的工作方式:先看什么、按什么顺序
排除假设、每个阶段使用哪些工具以及为什么。我用 CVE-2025-5548
作为主线,因为它是一个小而易于把握的案例,但这个仓库的核心文档——
METHODOLOGY.md ——不是“如何利用 FreeFloat
FTP”的教程,而是我面对任何二进制文件时的推理方式,
可适配到其他案例。
FreeFloat FTP Server 1.0 是一个十多年前的 Windows FTP 服务器,
已经无人维护,却仍被用于漏洞利用实验室,因为它的缺陷堪称教科书级别:
在处理某些协议命令时(我在这里用的是 NOOP,尽管它不是唯一一个),
它会用 strcpy 把客户端发送的内容复制到栈上的固定缓冲区,
而不检查输入长度。如果你发送的数据超过容量,
就会覆盖栈上保存的返回地址,从而控制 EIP。
在调查这个 bug 的历史时,我觉得有一点很有意思:
同一个编程缺陷,从不同的 FTP 命令(USER、PASS、
HOST、……)触发,最终被登记为多个不同的 CVE
(CVE-2025-5548、CVE-2025-5667、CVE-2025-5220、CVE-2025-5075……)。
NOOPMETHODOLOGY.md —— 核心文档:我的分析与利用方法论,
分阶段展开,涵盖每一阶段所用的工具和思维方式,
以及我面对未知漏洞(0-day)的应对方式。00-Environment/ —— 我如何搭建实验室
(Windows 受害机、Linux 攻击机、已安装的软件、网络);易受攻击的二进制
文件位于 Binaries/ 中。01-Vulnerability-Analysis/ —— 二进制文件诊断:
缺陷在哪里以及为何发生,配合静态逆向工程。02-Exploitation/ —— 完整的利用过程,
逐步记录,并附上我在每个阶段使用的脚本。03-0day-Approach/ —— 我会如何着手寻找
尚未被发现的漏洞:fuzzing、diffing、reversing、环境。images/ —— 实验室截图,每个部分一个子文件夹。所有测试都在隔离的实验室中进行(内网中的虚拟机, 不连接任何第三方系统)。内容纯粹是教学性质的; 不打算用于针对未经授权的基础设施。
我以 TheMalwareGuardian/CVE-2025-5548 仓库为基础。