cve20140569 漏洞利用分析

admin 2019年5月11日00:59:24评论275 views字数 772阅读2分34秒阅读模式
摘要

来自CVE的漏洞描述:测试环境: Win7 SP1 + Flash ActiveX 15.0.0.167介绍有关漏洞关键代码前,先看一下heap spray后的内存布局:

0×00 简述


来自CVE的漏洞描述:

cve20140569 漏洞利用分析

测试环境: Win7 SP1 + Flash ActiveX 15.0.0.167

0×01 漏洞利用分析


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

cve20140569 漏洞利用分析

简单描述为:

cve20140569 漏洞利用分析

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

漏洞关键代码:

cve20140569 漏洞利用分析

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

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

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

cve20140569 漏洞利用分析

通过函数atomicCompareAndSwapLength将_loc3长度置0

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

上述过程细节:

cve20140569 漏洞利用分析

cve20140569 漏洞利用分析

cve20140569 漏洞利用分析

cve20140569 漏洞利用分析

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

利用关键点:

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

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

具体的喷射代码:

cve20140569 漏洞利用分析

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

cve20140569 漏洞利用分析

搜索到的其中一项:

计算flash控件基址:

cve20140569 漏洞利用分析

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

cve20140569 漏洞利用分析

cve20140569 漏洞利用分析

构造rop链(部分):

cve20140569 漏洞利用分析

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

cve20140569 漏洞利用分析

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

cve20140569 漏洞利用分析

cve20140569 漏洞利用分析

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

cve20140569 漏洞利用分析

调用虚函数触发利用。

cve20140569 漏洞利用分析

0×02 分析总结


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

0×03 参考文章


  1. CVE-2014-0569漏洞分析

  2. Cracking the CVE-2014-0569 nutshell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2019年5月11日00:59:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   cve20140569 漏洞利用分析https://cn-sec.com/archives/63062.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息