- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
感谢 安全焦点所有的成员与启明星辰积极防御实验室的同事 主讲目录 WINDOWS堆结构简介 WINDOWS堆溢出利用 WINDOWS 2003堆溢出保护 WINDOWS 2003堆溢出保护的弱点 思路的延续:弱点利用深入的讨论 思路的突变:更广泛的另类有效利用的手段 未来WINDOWS 2003堆溢出利用研究的方向 * Windows 2003 堆溢出及其利用技术深入研究 作者:FlashSky 日期:2003-12-26 Copyright ? FlashSky@xfocus.org 2003 WINDOWS 堆结构简介(1) 前言 WINDOWS 2003,系统低层的安全性改进 本文的目的 当前关于WINDOWS堆的研究 WINDOWS 堆管理结构与管理特性的研究 WINDOWS 堆特性在堆溢出时的利用的研究 WINDOWS 2003的堆特性的研究 Copyright ? FlashSky@xfocus.org 2003 WINDOWS 堆结构简介(2) WINDOWS堆结构简介 堆与堆块 堆管理结构与堆块管理结构 堆的整体结构构架 Copyright ? FlashSky@xfocus.org 2003 Copyright ? FlashSky@xfocus.org 2003 堆管理结构块 (SIZE:0X640/0XC50) 堆段表块0 (SIZE:0X40) 小堆块分配管理表结构 (SIZE:0X1818),可选 用户堆块数据区 堆的基地址 一般紧接着堆管理结构块之后 WINDOWS 堆结构简介(3) WINDOWS堆块分配与释放的管理 大堆块对象与小堆块对象 空闲堆块双向链表头 空闲大堆对象与空闲小堆对象入链算法 Copyright ? FlashSky@xfocus.org 2003 WINDOWS 堆溢出利用(1) 基本原理 常见的普通利用方式: 引起空闲堆组成的双向链表的脱链的操作 Copyright ? FlashSky@xfocus.org 2003 Copyright ? FlashSky@xfocus.org 2003 NextP2 PrevP0 NextP3 PrevP1 NextP4 PrevP2 NextP3/PrevP3 NextP2/PrevP2 NextP1/PrevP1 NextP3 PrevP0 NextP3 PrevP1 NextP4 PrevP1 一个正常的堆块脱链表过程 WINDOWS 堆溢出利用(2) 双向链表的入链利用的可能性 可利用的原理 利用的要求 Copyright ? FlashSky@xfocus.org 2003 NextP3 PrevP0 NextP3 PrevP1 NextP4 PrevP1 NextP3/PrevP3 NextP2/PrevP2 NextP1/PrevP1 NextP2 PrevP0 NextP4 PrevP1 UNKN UNKP NextP3 PrevP1 NextP2 PrevP0 NextP4 PrevP2 一个正常的大堆块插入入链表过程 Copyright ? FlashSky@xfocus.org 2003 WINDOWS 堆溢出利用(3) 覆盖空闲大堆可以达到的目的: 我们能将一个当前释放堆的地址填入到一个由我们指定的内存地址中 Copyright ? FlashSky@xfocus.org 2003 NextP3 PrevP0 NextP4 PrevP1 NextP3 PrevP0 JMP TSEHP TSEH NextP3 PrevP0 JMP NextP2 NextP2 NextP3 SEHP TOPSEH TOPSEH 一个利用大堆块插入入链表的过程 NextP3/PrevP3 NextP1/PrevP1 NextP2/PrevP2 Copyright ? FlashSky@xfocus.org 2003 WINDOWS 堆溢出利用(4) 入链表利用的进一步 问题:当前释放堆块地址的前8字节内容是我们无法控制的指针价值。 解决方法:再次分配时候可以将我们可以控制的4字节写入 Copyright ? FlashSky@xfocus.org 2003 Copyright ? FlashSky@xfocus.org 2003 NextP3 PrevP0 JMP NextP2 NextP2 JMP SEHP NextP3 PrevP0 JMP NextP2 NextP2 JMP SEHP TOPSEH JMP ADDR 触发异常 利用分配再次写入JMP代码到头四字节
文档评论(0)