首页
社区
课程
招聘
Adobe Flash Player远程代码执行漏洞分析(CVE-2012-1535)
发表于: 2012-9-19 00:24 12173

Adobe Flash Player远程代码执行漏洞分析(CVE-2012-1535)

2012-9-19 00:24
12173

written by h4ckmp
http://www.BinVul.Com
http://t.qq.com/h4ckmp
欢迎讨论各种漏洞问题.

漏洞信息
发布日期:2012-08-14
更新日期:2012-08-16

受影响系统
Adobe Flash Player 11.x
描述:
BUGTRAQ ID: 55009
CVE ID: CVE-2012-1535

Adobe Flash Player是一个集成的多媒体播放器。
Windows和Mac OS X平台上Adobe Flash Player 11.3.300.271之前版本,Linux平台上11.2.202.238之前版本,在实现上存在不明细节漏洞,可允许远程攻击者通过SWF内容执行任意代码或造成拒绝服务。

<*来源:Alexander Gavrun
链接:
http://secunia.com/advisories/50285/
http://secunia.com/advisories/50286/
*>

建议
厂商补丁:Adobe
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.adobe.com/support/security/

漏洞介绍
使用IE调用SWF,IE Crash信息如下


出错函数如下


查看SWF文件格式,文件包含DefineFont4 Tag,DefineFont4是在SWF10中添加的。DefineFont4仅支持新的Flash文本引擎,嵌入的字体数据是以CFF格式存储的。


本次漏洞产生原因为整型溢出, 恶意数据存在于FontData数据偏移0x8344中, 位于kern Table中。文件中出现的0x1000为version,0x10000000为nTables(subtables数量),正因为错误的nTables值导致了异常的产生


漏洞分析
在TTF文件格式中有许多Table,其中有一处为'kern' Table,Adobe Flash Player在处理'kern' Table存在问题,也是本次漏洞的产生原因。程序中有牵扯到几个重要结构,在这里简单介绍其格式

'kern' Table
struct kernTableInfo  (sizeof=0x10)
{
        +0  objBufAlloctor        // 内存池对象
        +4  kernStreamObj        // kernStream对象
        +8  nTables                        // kernTable中subtables数量
        +C  ptrSubtables                // 存储subtables的buffer
}

subtable
struct subtableInfo  (sizeof=0x10)
{
+0  bKernFormatMask
+4  start_offset        // 当前table起始偏移
+8  data_offset        // table中数据起始偏移
        +C  field_C
}

进入kernTableHandler()函数内部,程序会读取'kern' Table中的nTables,并根据nTables申请内存,用于存放subtables


首先分配一块0x10的内存,存放kernTable信息


然后分配Size = nTable * 0x10 的内存,用于存放subtables,但由于nTables被恶意修改,致使nTable * 0x10产生整型溢出,分配了错误Size的内存


接下来程序会循环填充ptrSubtables,简单还原kernTableHandler函数代码


循环次数为nTables = 0x10000000,这个过程中会覆盖关键数据。在循环至第0x4F8次时,恰好覆盖至kernTableInfo.nTables,导致循环退出,之后进入vul_func()触发漏洞.


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (13)
雪    币: 1489
活跃值: (1053)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
玩抢沙发再看。
2012-9-19 00:33
0
雪    币: 106
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
以前在BinVul的分析了,顺便发过来了.
2012-9-19 00:53
0
雪    币: 227
活跃值: (120)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
4
你的ID暴露了。kernTableHandler函数代码好详细啊
2012-9-19 10:07
0
雪    币: 72
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
看了两篇楼主的分析报告,思路清晰,调试功底深厚啊。尤其对关键的几个函数功能的逆向很赞。
2012-9-19 10:12
0
雪    币: 106
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
哈哈. 这个也是马甲
2012-9-19 10:20
0
雪    币: 72
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
要相信google的搜索力量和无聊蛋疼人士流弊的人肉能力 ;-p
2012-9-19 10:54
0
雪    币: 403
活跃值: (330)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
8
这篇写得真好!虽然我也很喜欢古河的那篇:)
2012-9-19 11:12
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
做个标记!!!
2012-9-20 16:53
0
雪    币: 310
活跃值: (159)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
10
分析的不错.支持下
2012-9-20 19:32
0
雪    币: 363
活跃值: (338)
能力值: ( LV15,RANK:310 )
在线值:
发帖
回帖
粉丝
11
哈哈!h4ckmp的马甲暴露了!
2012-9-20 20:25
0
雪    币: 58
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
太赞了,逆向代码部分就是源码了.
2012-9-26 13:20
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
也就是说,网页中的flash广告,也是可能让人中着了>
2012-9-28 12:44
0
雪    币: 345
活跃值: (122)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
14
1535还是详细分析了一下的。在弄的时候也借鉴了上面的资料。不过,通过分析,发现这个漏洞不稳定,理论上推算下来只有25%的成功率。
2012-9-29 21:01
0
游客
登录 | 注册 方可回帖
返回
//