网络对抗原理第6章.pdfVIP

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章缓存溢出攻击    第6章缓存溢出攻击 6.1 绪论 6.2 Windows下的缓存溢出 6.3 Linux缓存溢出 第6章缓存溢出攻击    6.1 绪论 过去10年中计算机的最大安全隐患究竟是什么 呢? 计算机科学和安全问题的分析家认为,计算机的 最大隐患不是“千年虫” 问题,而是被称为“缓存溢出” 的 安全漏洞。“千年虫”只会使计算机无法正确识别用两 位数表示的年份,而缓存溢出则不同,它为心怀恶意 的黑客打开了攻击他人计算机的大门,使他们可以利 用这个漏洞打入想要攻击的计算机,从而达到部分甚 至完全控制对方的计算机系统。 第6章缓存溢出攻击    在存在缓存溢出安全漏洞的计算机中,攻击者可 以用超出常规长度的字符数来填满一个域,通常是内 存区地址。在某些情况下,这些过量的字符能够作为 “可执行”代码来运行,从而使得攻击者可以不受安全 措施的约束来控制被攻击的计算机。 美国俄勒冈州科学与技术研究生院(OGI)最近公布 [21] 的一篇论文称 :“过去10年中,缓存溢出一直是计算 机的最大安全隐患。由于受到这种攻击,使得任何人 都能够完全控制某一台主机,因此这构成了对计算机 安全的最大威胁。” 本章将分别介绍在Windows 系统和Linux系统下的 缓存溢出原理和攻击方式。 第6章缓存溢出攻击    6.2 Windows下的缓存溢出 6.2.1 简介 首先让我们来看一个例子。 #include string.h void MyCopy(char *str) { char buffer[256]; strcpy(buffer,str); } 第6章缓存溢出攻击    int main( ) { int i; char buffer[512]; for(i=0;i=511;i++) buffer[i]=C; MyCopy(buffer); return 0; } 编译后运行出现如图6-1 的缓存溢出错误提示消息。 第6章缓存溢出攻击    图6-1 缓存溢出错误 第6章缓存溢出攻击    这就是由于缓冲区溢出造成的。下面来分析造成 这种结果的原因。 上面的代码中定义的子函数MyCopy只有一个入口 参数(char *str),同时定义了一个局部变量buffer[256] 。 该函数在调用strcpy时把主函数传递过来的511字节长 的字符没有经过长度检查,直接拷贝到只分配了256字 节的缓冲区中,也就是说,往缓冲区中拷贝了过多的 数据,这就有可能覆盖指令指针(eip)即覆盖返回地址、 ebp甚至子函数的局部变量。在这个例子中,eip和ebp 均被设置为00x43是字符C 的ASCII码) 。 第6章缓存溢出攻击    简单地说,当一个大的物体放入一个小的容器 时,就会出现“缓存溢出”现象。在代码中,我们可以 认为给变量分配的内存空间就是一个容器。如果仅仅 想使程序崩溃,只需往内存这个容器中放置过大的数 据,使程序无法正常返回即可。更进一步,可以通过 覆盖返回地址,改变程序的执行流向,使程序返回后 能执行特定的代码实现特定的功能。 第6章缓存溢出攻击    6.2.2 基本原

文档评论(0)

186****8818 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档