缓冲区溢出练习
缓冲区溢出实践
20191331lyx
一、实验环境
实验楼 https://www.lanqiao.cn/courses/231
二、实验准备
关闭内存地址空间随机化
三、开始实践
进入32位linux环境
本次实验的shellcode
编写漏洞程序
关闭gcc编译保护
精确定位esp寄存器位置
在代码中插入esp寄存器地址
进行缓冲区溢出攻击
实验验证原理
缓冲区溢出:缓冲区溢出是一种常见且有害的系统攻击手段。通过向程序的缓冲区写入超出其长度的东西,造成缓冲区溢出,从而破坏程序的堆栈,使程序改为执行其他指令,从而达到攻击的目的。
在C语言编程中,一些不检查边界的字符串复制函数(如strcpy)容易造成缓冲区溢出。
常见的缓冲区溢出防御手段
基于检测方法的防御(金丝雀)。其中包括StackGuard(由Immunix使用)、ProPolice(由OpenBSD使用)和微软的/GS选项。
非执行堆栈防御。包括Solar Designer的非执行补丁(由OpenWall使用)和执行屏蔽(由Red Hat/Fedora使用)。
包括libsafe(由Mandrake使用)和堆栈分区方法。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/61490.html