- 47
- 0
- 约3.81千字
- 约 27页
- 2016-05-14 发布于湖北
- 举报
网络攻击 缓冲区溢出 Windows系统中缓冲区溢出 2001年“红色代码”蠕虫 利用微软IIS Web Server中的缓冲区溢出漏洞使300 000多台计算机受到攻击 2003年1月,Slammer蠕虫爆发, 利用的是微软SQL Server 2000中的缺陷 2004年5月爆发的“振荡波” 利用了Windows系统的活动目录服务缓冲区溢出漏洞; 2005年8月“狙击波” 利用Windows即插即用缓冲区溢出漏洞,被称为历史上最快利用微软漏洞进行攻击的恶意代码 2008年底至2009年的Conficker蠕虫 利用的是Windows处理远程RPC请求时的漏洞(MS08-067) 缓冲区溢出相关概念 缓冲区 从程序的角度,缓冲区就是应用程序用来保存用户输入数据、程序临时数据的内存空间 缓冲区的本质 数组 存储位置 Stack Heap 数据段 缓冲区溢出相关概念 如果用户输入的数据长度超出了程序为其分配的内存空间,这些数据就会覆盖程序为其它数据分配的内存空间,形成所谓的缓冲区溢出 简单溢出实例 #include stdio.h int main() { char name[8] = {0}; printf(“Your name:”); gets(name); printf(“Hello,%s!”,name); return 0; } 缓冲区溢出的危害 利用缓冲区溢出漏洞进行的攻击已经占所有系统攻击总数的80%以上 应用程序异常 系统不稳定甚至崩溃 程序跳转到恶意代码,控制权被窃 程序在内存中的映像 栈 栈是一块连续的内存空间 先入后出 生长方向与内存的生长方向正好相反, 从高地址向低地址生长 每一个线程有自己的栈 提供一个暂时存放数据的区域 使用POP/PUSH指令来对栈进行操作 使用ESP寄存器指向栈顶,EBP指向栈帧底 栈内容 函数的参数 函数返回地址 EBP的值 一些通用寄存器(EDI,ESI…)的值 当前正在执行的函数的局部变量 三个重要的寄存器 SP(ESP) 即栈顶指针,随着数据入栈出栈而发生变化 BP(EBP) 即基地址指针,用于标识栈中一个相对稳定的位置。通过BP,可以方便地引用函数参数以及局部变量 IP(EIP) 即指令寄存器,在将某个函数的栈帧压入栈中时,其中就包含当前的IP值,即函数调用返回后下一个执行语句的地址 函数调用过程 把参数压入栈 保存指令寄存器中的内容,作为返回地址 放入堆栈当前的基址寄存器 把当前的栈指针(ESP)拷贝到基址寄存器,作为新的基地址 为本地变量留出一定空间,把ESP减去适当的数值 函数调用中栈的工作过程 调用函数前 压入栈 上级函数传给A函数的参数 返回地址(EIP) 当前的EBP 函数的局部变量 调用函数后 恢复EBP 恢复EIP 局部变量不作处理 例子 int AFunc(int i,int j) {int m = 3;int n = 4; ????m = i;n = j; ????BFunc(m,n); ????return 8; } int BFunc(int i,int j) { int m = 1; int n = 2; m = i; n = j; return m; } 函数调用中栈的工作过程 函数调用中栈的工作过程 缓冲区溢出发生…… int AFunc(int i,int j) {int m = 3;int n = 4; char szBuf[8] = {0}; strcpy(szBuf, “This is a overflow buffer!”); ????m = i; n = j; ????BFunc(m,n); ????return 8; } 缓冲区溢出原理及其利用 缓冲区溢出种类 栈溢出 堆溢出 整型溢出 格式化字符串溢出 其他溢出 栈溢出 特点 缓冲区在栈中分配 拷贝的数据过长 覆盖了函数的返回地址或其它一些重要数据结构、函数指针 栈溢出实例 int AFunc(int i,int j) {int m = 3;int n = 4; char szBuf[8] = {0}; *(int *)((int)szBuf+20) = BFunc; ????m = i; n = j; ????BFunc(m,n); ????return 8; } 堆溢出 堆和栈有何区别 内存的动态分配与静态分配 堆溢出特点 缓冲区在堆中分配 拷贝的数据过长 覆盖了堆管理结构 #define BUFLEN 32 int main(int argc, char* argv[ ]) { char *buf1; buf1 = (char*)m
您可能关注的文档
- 第六章当代中国教育事业讲解.ppt
- 化学药品使用安全手册(MSDS)要点.doc
- 化学与人类要点.ppt
- 化学与生活教学案要点.doc
- 化学与生活选择题3要点.doc
- 化学与生活知识点要点.doc
- 化学与生活知识竞赛要点.ppt
- 化验室安全培训手册要点.doc
- 化验室意外事故处理及安全知识培训要点.ppt
- 化妆品配方的设计与生产要点.ppt
- 2025年版汽车趋势报告 The 2025 EPA Automotive Trends Report.docx
- 2026年边缘计算开源平台EdgeX Foundry入门与二次开发.docx
- 2026年超声内镜放大内镜早癌诊断AI辅助识别系统临床评价.docx
- 2026年报废汽车回收与再制造逆向物流体系.docx
- 2026年产品碳足迹核算方法学:从摇篮到大门与从摇篮到坟墓.docx
- 2026年城乡要素平等交换双向流动政策创新试点申报材料.docx
- 2026年超导半导体接口电路架构与电平转换驱动器设计.docx
- 2026年财政贴息不再以再贷款支持为前提后的风险防范与合规要点.docx
- 2026年不动产信托登记试点政策对遗嘱信托支持.docx
- 2026年城乡有机废弃物协同处理技术方案.docx
原创力文档

文档评论(0)