0x00 简述

来自CVE的漏洞描述:

测试环境: Win7 SP1 + Flash ActiveX 15.0.0.167

0x01 漏洞利用分析

介绍有关漏洞关键代码前,先看一下heap spray后的内存布局:

简单描述为:

漏洞致使Uint Vector的length字段被改写。

漏洞关键代码:

红线标注的部分其操作流程:

预置大小0x1000的ByteArray对象:

上述过程细节:

这样就可以以超长的Uint Vector为起点,读取预置的对象数据。

利用关键点:

预置的sound对象包含于喷射的少量Vector Object里,这里称之为vec_3。

具体的喷射代码:

通过特征比对遍历以获取vec_3中元素:

搜索到的其中一项:

计算flash控件基址:

构造rop链(部分):

sound对象虚表指针修改前后:

修改后的虚表指针指向内容:

0x02 分析总结

完整的利用至少由两部分组成(html + swf),其中swf并不能独立执行,需要html传入的参数(shellcode),只拿到swf并不能获知攻击者的意图。

0x03 参考文章

【1】CVE-2014-0569漏洞分析

【2】Cracking the CVE-2014-0569 nutshell

源链接

Hacking more

...