加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CVE-2010-3333漏洞分析

(2012-04-17 18:47:20)
标签:

手机博客

IT

分类: 技术文章
CVE-2010-3333 漏洞是 MicrosoftOffice RTF 分析器堆栈溢出漏洞,对应的 Microsoft 安全公告是 MS10-087 。此漏洞影响到补丁发布之前的所有版本 Microsoft Office 软件。 Rich Text Format ( RTF ) ,即富文本格式,是 Microsoft 公司为进行文本和图象信息格式的交换而制定的一种文件格式,它适用于不同的设备、操作环境和操作系统。目前最新的版本是 1.9.1 ,于 2008 年 3 月 19 日发布。 RTF 文件的基本元素是文本( Text ) 、控制字( Control Word )、控制符号( Control Symbol )、组( Group )和目标( Destination )。 控制字是一种特定格式的命令, RTF 用它作为正文格式的控制代码,也作为应用程序管理文档的控制信息。其一般格式如下: \< 分隔符 > , 其中分隔符标志着控制字名称的结束。 目标是一种特殊的控制字,标志着一组相关文本的开始。 组由包含在一对大括号中的文本、控制字或控制符号组成。 RTF 也可以包含由字体、图片或者对象(绘画对象等)构成的组。 绘画( Drawing )对象是一种可以嵌入到 RTF 文件中的对象。大多数的绘画对象被定义为一系列的属性,通常它的格式是: {\shp{\*\shpinst{\sp{\sn 属性名称 }{\sv 属性值 } Microsoft RTF 分析器在分析 pFragments 属性的值时,没有正确的计算属性值 所占用的空间大小,导致堆栈溢出漏洞的产生。 漏洞产生在 MSO.DLL 文件(此文件位于 %CommonProgramFiles%\Microsoft Shared\OFFICE{ 版本号 } 目录)中,下文以 Microsoft Office2003 的 MSO.DLL (版本号为 11.0.8324.0 )为例。 01.jpg 当位于 0x30F749D2 处的函数在处理 pFragments 属性的值时,传递了一个最大为 0x10 字节的缓冲区给位于 0x30E97BE0 函数。 02.jpg 此函数未严格检查属性值 所占用的空间大小,仅取属性值 所占用的空间大小的低 16 位,这样一个典型的大小值 0x1111 就能导致位于 0x30E97BF7 处的 memcpy 函数在复制属性值时溢出堆栈,从而为恶意代码的执行提供了可能。下面是一个典型恶意样本的截图。 03.jpg 值得注意的是, 由于 Windows 自带的写字板也支持 RTF 格式的文件,而此程序不存在漏洞,所以恶意样本虽然都是 RTF 格式的文件,但通常将扩展名改为 DOC ,这样能调用 Microsoft Word 来打开,以便触发漏洞。同时由于这个漏洞触发简单,而又不容易检测,故利用此漏洞的恶意样本变种极多,通常以邮件附件的形式诱导用户打开。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有