缓冲区溢出攻击_第1页
缓冲区溢出攻击_第2页
缓冲区溢出攻击_第3页
缓冲区溢出攻击_第4页
缓冲区溢出攻击_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12l课程目的学习缓冲区溢出攻击的基本概念和原理掌握预防和防御缓冲区溢出攻击的方法3lBuffer overflow attack 缓冲区溢出攻击缓冲区溢出漏洞大量存在于各种软件中利用缓冲区溢出的攻击,会导致系统当机,获得系统特权等严重后果。l最早的攻击1988年UNIX下的Morris worml最近的攻击Codered 利用IIS漏洞SQL Server Worm 利用SQL Server漏洞Blaster 利用RPC漏洞Sasser利用LSASS漏洞4l向缓冲区写入超过缓冲区长度的内容,造成缓冲区溢出,破坏程序的堆栈,使程序转而执行其他的指令,达到攻击的目的。l原因:程序中缺少错误检测:

2、void func(char *str) char buf16; strcpy(buf,str);如果str的内容多于16个非0字符,就会造成buf的溢出,使程序出错。5l类似函数有strcat、sprintf、vsprintf、gets、scanf等l一般溢出会造成程序读/写或执行非法内存的数据,引发segmentation fault异常退出.l如果在一个suid程序中特意构造内容,可以有目的的执行程序,如/bin/sh,得到root权限。6l对于使用C语言开发的软件,缓冲区溢出大部分是数组越界或指针非法引用造成的。l有时并不引发溢出也能进行攻击。l现存的软件中可能存在缓冲区溢出攻击,因此

3、缓冲区溢出攻击短期内不可能杜绝。l缓冲区溢出的危害很大:可以植入并运行攻击代码比大部分DoS攻击危害严重7l在进程的地址空间安排适当的代码l通过适当的初始化寄存器和内存,跳转到以上代码段执行8l利用进程中存在的代码传递一个适当的参数如程序中有exec(arg),只要把arg指向“/bin/sh”就可以了l植入法把指令序列放到缓冲区中堆、栈、数据段都可以存放攻击代码,最常见的是利用栈9l段属性Text: EData:R/WStack:R/W/El栈需要E属性Signal HandlingTrampoline codeTextDataStackHighLowHeap10l利用活动记录溢出栈中的局部

4、变量,使返回地址指向攻击代码 栈溢出攻击 Stack Smashing Attack11l函数指针如果定义有函数指针,溢出函数指针前面的缓冲区,修改函数指针的内容12l长跳转缓冲区 longjmp buffersSetjmp/longjmp语句覆盖setjmp/longjmp的缓冲区内容13l一个字符串中完成代码植入和跳转一般修改活动记录14l缓冲区不可执行植入的攻击代码无法执行,不能产生大的危害l编写正确的代码l编译器进行类型、边界检查,实现缓冲区的保护javal运行时(Runtime)指针、边界检查15lLinux/Solaris都可以设置202.38.64.10/11都设置了l能杜绝绝大部分,但不是所有缓冲区溢出攻击lLinux在以下情况下栈必须可执行:Signalgcc在线重用16l关闭不需要端口和服务l安装最新的补丁l检查关键程序l以最小的权限运行软件不使用roo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论