Windows缓冲区溢出攻击的实例研究.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows缓冲区溢出攻击的实例研究

201W2-0in7-d1o9#w##s#############2012-07-19#####2#0#1#2-07-19######## Pra ctica l Re s e a rch o n Bu ffe r Ove rflo w Atta ck b a s e d o n Win d o w s S ys te m (深圳职业技术学院)池瑞楠 CHI RUINAN 摘要: 本 文 首 先 详 细 分 析 了 Windows 缓 冲 区 溢 出 的 基 本 原 理 和 具 体 流 程 。 在 此 基 础 上 , 通 过 对 一 个 Windows 网 络 缓 冲 区 溢 出 攻 击 实 例 的 详 细 调 试 分 析 , 研 究 了 Windows 缓 冲 区 溢 出 攻 击 的 整 个 过 程 , 剖 析 了 攻 击 者 是 如 何 利 用 缓 冲 区 溢 出 漏 洞 进 行 攻 击 的 。 最 后 结 合 实 际 分 析 了 几 种 防 范 缓 冲 区 溢 出 攻 击 的 有 效 措 施 。 关键词: 缓冲区; 溢出; 堆栈;ShellCode;DEP 中图分类号:TP393.08 文献标识码:A Abstr act:The paper analyses the principle and the process of the buffer overflow based on Windows system.On this base, via the detailed debugging of a network buffer overflow attack example,the paper also researches the course of buffer overflow attack and how attackers attack Windows system by the use of buffer overflow leaks. Finally,some defense measures against buffer overflow attack are analysed. Key wor ds:buffer ,over flow,stack,Shell code,Data Execution Pr evention 技 术 创 新 析缓冲区溢出的机制和具体流程。 // 文件名: overflow.cpp // 功能: 演示 Windows 缓冲区溢出的机制 #include stdio.h #include string.h char bigbuff[]=aaaaaaaaaa; // 10 个 a void main() { char smallbuff;// 申请 5 个字节空间 strcpy(smallbuff,bigbuff); } 利用 C++编译工具将该 overflow.cpp 文件编译连 接 后 产生 一个可执行文件 overflow.exe, 并使用 32 位汇编级调试工具 Ol- lyDbg 加载 overflow.exe 文件进行逐行调试。当程序调用 strcpy 函数时, 堆栈的填充情况示意图如图 1 所示。 引言 1 当前, 信息安全已经成为计算机和互联网系统中一个非常 重要的问题, 得到了人们的普遍重视。《深圳市“十一五”科学和 技术发展纲要》中 , 已经 把 信 息安 全 作 为“十 一 五 ”期间 科 技 发 展的重点领域和优先主题, 可见信息安全在当前国家社会政治 经济各个层面的重要性。然而, 信息安全正越来越多地受到黑 客攻击的威胁, 尤其是利用缓冲区溢出漏洞对计算机和互联网 系统实施的攻击, 是黑客最常用、并且最有效的攻击手法之一。 据统计, 大约 80%的安全事件与缓冲区溢出攻击有关。 缓冲区溢出的原理和流程 2 2.1 缓冲区溢出的基本原理 缓冲区溢出源于程序执行时需要存放数据的空间, 也即我 们所说的缓冲区。缓冲区的大小是程序执行时固定申请的。然 而, 某些时候 , 在 缓 冲区 内 装 载的 数 据 大小 是 用 户输 入 的 数据 决定的。程序开发人员偶尔疏忽了对用户输入的这些数据作长 度检查 , 使得 用 户 输入 的 数 据超 过 了 缓冲 区 的 长度 , 就 造 成了 缓冲区溢出。往往缓冲区溢出会覆盖了其它在内存空间中的数 据, 如果被缓冲区溢出所覆盖的数据是一些程序执行时所必须 的固定值的数据 , 例 如 函数 的 返 回地 址 , 那 么该 程 序 执行 过 程 必定会发生改变, 严重的甚至会导致程序、系统崩溃。 缓冲区溢出是由于系统和软件本身存在脆弱点所导致的。 例如目前被广泛使用的 C 和 C++, 这些语言在编译的时候没有

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档