实验四、缓冲区溢出漏洞利用实验
目录
实验四、缓冲区溢出漏洞利用实验 1
一.溢出点定位方法 1
1. 当长度未超过缓冲区时, 1
2. 当长度超过缓冲区时 2
二.漏洞利用方法(给出攻击发生时栈的布局) 3
三.DEP 保护绕过方法及实现 3
1. DEP 保护 3
2. ROP 原理 3
3. VirtualProtect 简介 4
4. 实现步骤 4
四. shellcode 的设计与实现 5
五. 用于实现漏洞利用的“恶意”文件的结构与内容 6
1. junk 6
2. rop_chain 6
3. nops 7
4. shellcode 7
5. 内容 7
六. 可复现漏洞利用结果的测试环境 8
七.实验总结 9
1. python 版本问题 9
2. 栈平衡问题 9
3. 地址随机化问题 9
一.溢出点定位方法
最开始先尝试采用字符串 123 重复的形式探测缓冲区大致长度,利用 ImmunityDebugger 查看 EBP 与 EIP 内容。
1.当长度未超过缓冲区时,
情况如图:
导入内容正常显示于框内,EBP,EIP 地址分别为原有的栈底指针和下一个执行语句的地址。
2.当长度超过缓冲区时
为了便于探测具体位置,将临近缓冲区溢出点的字符改为递增的字母
通过 ImmunityDebugger 查看得到 EBP 与 EIP 已被覆盖