西北工业大学数据库实验报告
西北工业大学
计算机系统基础实验报告
姓名班级学号
实验成绩指导教师
实验名称缓冲区溢出攻击
实验目的:
通过使目标程序跳转到我们预定的位置执行,从而加深对IA-32函数调用规则和栈帧结构的理解。
实验工具:
linux、gdb调试器、反汇编工具objdump、将16进制数转化为ASCII码的工具hex2raw。
实验要求:
对一个可执行程序“bufbomb”实施一系列缓冲区溢出攻击,也就是设法通过造成缓冲区溢出来改变该可执行程序的运行内存映像,继而执行一些原来程序中没有的行为,例如将给定的字节序列插入到其本不应出现的内存位置等。
实验内容:
一、Smoke(让目标程序调用smoke函数)
本实验利用getbuf()函数不检查读取字符串长度的漏洞破坏该程序栈帧的返回地址从而达到对主程序造成破坏的目的。首先用objdump指令反汇编生成bufbomb的汇编语言文本文件。
可以找到getbuf函数代码如下:
080491f1 :
80491f1: 55 push %ebp
80491f2: 89 e5 mov %esp,%ebp