概述
Section outline
-
缓冲区溢出被定义为程序试图将数据写入缓冲区边界之外的情况。这种漏洞可以被恶意用户利用来改变程序的流程控制,导致执行恶意代码。 本实验的目标是让大家获得对这种类型的漏洞的实际见解,并学习如何在攻击中利用此漏洞。
在这个实验中,你们将给定一个具有缓冲区溢出漏洞的程序;你们需要想出一种方法来利用该漏洞并最终获取 root 权限。除了攻击外,你们还将了解操作系统实施以防止缓冲区溢出攻击的各种保护机制。你们需要评估这些机制是否有效,并解释原因。本实验涵盖了以下主题:
-
缓冲区溢出漏洞和攻击
-
栈布局
-
地址随机化、不可执行栈以及 StackGuard
-
32 位和 64 位 shellcode
-
return-to-libc 攻击,旨在击败非执行栈防御措施
-