基于Windows操作系统的栈溢出攻击验证
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为堆溢 出 ; 生在 已初 始化 数据 区 的则称 为 已初始 化数 据 区溢 出. 中栈溢 出 比较 简单 , 发 其 但是 也 是 比较 常 见 的攻 击方 式. 溢 出是冯 ・ 依曼 构架 的一 个 缺陷 , 栈 诺 常见 的操 作 系统如 W id ws L n x S lr 都 存在 n o 、 iu 、 oai s 这些漏 洞. 于 Wid ws 作 系统 的普及 , 文主要 针 对 Wid ws 鉴 no 操 本 n o 进行 分 析.
* 收稿 日期 :0 91-2 2 0 —21
作者 简 介 : 周
蕊 (9 9 , , 师 , 读 硕 士 生 , 究 方 向 : 络 安全 与计 算 机 应 用 1 7 一) 女 讲 在 研 网
wk.baidu.com
・
14 ・ 1
陕 西科 技 大 学 学 报
第2 8卷
在 c语 言 中 , 函数调 用前先 要构 造 函数 栈 , 来存 放实参 、 时变量 等. 函数 栈 帧 中 E P和 E P之 用 临 在 S B 间的 内存 空 间为 当前 栈帧 , B E P标识 了 当前 栈帧 的底部 , S E P标识 了当前栈 帧 的顶部. 函数 栈帧 中一般 包含 以下几类 重要 信息 : ( ) 部变 量 : 函数局 部变 量开辟 内存 空间 , 1局 为 一般通 过 s bE P,x指 令来 实现. u X x
0 引 言
缓 冲 区溢 出是 目前 导致 “ 客” 黑 型病 毒横 行 的主要 原 因. 从红 色 代码 到 Sa lmme , 到 日前爆 发 的“ r再 冲 击 波” 都是 利用 缓 冲 区溢 出漏洞 的典 型. C R C mp trE r e c ep n eT a 安 全 小组 称 , , 据 E T( o ue meg n yR s o s e m)
个栈 .
下面 的分析 主要 针对 寄存 器来 进行 , 先说 明几个 我 们需要 特 别关 注 的 I tl 0 6系 统 的 3 首 n e 8 ×8 2位 寄
存器 :
( ) 令地 址 寄存器 E P: 1指 I 保存 下一 步将 要执 行 的指令 的地 址. ( ) 址寄存 器 E P: 存 当前 函数层 的栈 内存 基地 址 , 2基 B 保 依靠 它来 完成 栈 内存 的变量 寻址 . ( ) 顶指 针 寄存器 E P: 3栈 S 保存 栈顶 地址 ( 针 )根 据 它来完 成 P H、 OP操作 . 顶指 针所 指 向的 指 , US P 栈 位置 是存储 有效 数 据 的 , P H 操 作是 先往 低址 移 动栈 顶指 针 , 存储 数 据 ; OP操作 是先 读 取数 据 , 故 US 再 P 再往 高址 移动栈 顶 指针 .
№ .1
陕 西 科 技 大 学 学 报
J OU RNAI OF S HAANXIUNI VERS TY C ENCE 8 I OF S I LTECHNOLOGY
Fe 2Ol b. O
・
Vo1 8 .2
1 3・ 1
文 章 编 号 : 0 0 5 1 ( 0 0 O — 1 3O 1 0 — 8 1 2 1 ) 10 1 一 5
操 作系 统 中超 过 5 的安全漏 洞 都是 由内存 溢 出引起 的 , 中大 多 数 与微 软 技 术 有关 , 0 其 这些 与 内存 溢 出
相 关 的安全漏 洞 正在被 越来 越 多 的蠕虫 病毒 所利 用.
缓 冲 区溢 出分为 以下 几种 方式 : 盖数据 为栈 中的数据 , 为栈 溢 出 ; 果溢 出覆 盖发 生在 堆 中 , 覆 称 如 则称
基 于 Wid w 操 作 系统 的栈 溢 出攻 击 验 证 nos
周 蕊 ,于 晓 明
(. 西 科 技 大 学 理 学 院 ,陕 西 西 安 7 0 2 ;2 陕 西 科 技 大 学 电气 与 信 息 工 程 学 院 , 西 西 安 7 0 2 ) 1陕 101 . 陕 1 0 1
摘 要 : 目前 大部 分 的缓 冲 区溢 出的攻 击 都是 基 于摧 毁栈 的方 式. 者针 对 Wid ws操作 系 作 no 统, 对栈 溢 出的原 理进 行 了相 关分析 , 并通过 实例 完成 了一 个溢 出的攻 击验 证. 实验 结果表 明 , 针 对有 漏洞 的代码 可 以进 行 漏洞攻 击 , 并给 出 了防止 漏洞 攻 击的 几点 建议. 关键 词 : ;缓 冲 区溢 出;漏洞 攻 击 ;网络安 全 栈 中图法分 类 号 : 3 3 0 TP 9 . 8 文 献标 识码 : A
( ) 帧状 态值 : 2栈 保存前 栈 帧的顶部 和底部 ( 际上 只保存前 栈 帧的底 部 , 实 前栈 帧 的顶部 可 以通 过堆栈
1 栈 溢 出预 备 知 识
栈 是一 种重 要 的数据 结构 , 遵循 “ 进后 出 ” 先 的操作 特 性 . Itl O 6系统 中 , 成 这一 功 能 的就 在 ne 8 ×8 完 是寄存 器 E P( x e d dS akP itr. 有 的 P H/ OP操 作 都 通 过它 来 完 成 , S E tn e tc one) 所 US P 因而 寄 存 器 E P经 S 常变化 . 是不 能 用 寄存 器 E P访 问 非栈 顶 的数 据 , 此 I tl O 6系 统设 置 了另外 一 个 寄存 器 E P 但 S 为 ne 8 ×8 B ( xe d dB s one) 用 它来 保存 一个 稳定 不 变 的基 准地 址 ( 址 ) 然 后通 过 “ 址 + 正 负偏 移量 ” E tn e aeP itr , 基 , 基 的 方式 实现 非栈顶 的 数据访 问 . 以把 E P看作 是保 存栈 底 的位 置 , 么寄 存 E P和 E P一 起 就组成 了一 可 B 那 B S