本实验的学习目标是让学生通过亲手实践,理解缓冲区溢出漏洞的原理与利用过程。缓冲区溢出是指程序向预先分配的固定长度缓冲区边界之外写入数据的情况。攻击者可以利用该漏洞改变程序控制流,甚至执行任意代码。该漏洞的根本原因在于数据存储区域(如缓冲区)和控制信息存储区域(如返回地址)在内存中相邻或混合使用,数据区域的溢出可能覆盖返回地址,从而改变程序执行路径。
在本实验中,学生将获得一个存在缓冲区溢出问题的程序,并利用该漏洞获得 root 权限。同时,学生还会实验 Linux 中实现的多种保护机制,并评估这些机制对攻击效果的影响。