0x00前言

该漏洞影响 Flash Player 版本28.0.0.137以及之前的所有版本

0x01 poc

Poc

这里只列出关键代码

public function triggeruaf() : void {var sdk :PSDK = null;var dispatch:PSDKEventDispatcher = null;sdk = PSDK.pSDK;dispatch = sdk.createDispatcher();this.mediaplayer = sdk.createMediaPlayer(dispatch);this.listener = new MyListener();this.mediaplayer.drmManager.initialize(this.listener);this.listener = null;}public function exploit():void {this.triggeruaf();try {new LocalConnection().connect("test");new LocalConnection().connect("test");} catch (e:Error) {}}

主要就是以一个listener类实例为参数初始化了一个drmManager对象,之后就将listener类实例赋值为NULL,其中listener类为

用FlashDevelop编译后生成Poc.swf

用Windbg附加IE打开Poc.swf,程序崩溃

可见直接使用ecx传递了一个对象

根据汇编代码可断定,ecx偏移0x0c处为某对象指针,而此对象已经全是0,造成了悬挂指针。再看poc脚本中,把一个MyListener(实现了DRMOperationCompleteListener接口)类型对象赋值null。所以可猜测ecx->0x0c为MyListener对象。

用ida找到触发漏洞的函数

函数在对象的虚表中

sub_1036E28A即触发崩溃的方法。

根据虚函数表引用找到对象赋值方法,即脚本中的initialize,这里是函数sub_1037AB11

重新附加IE,在initialize函数下断,打开poc.swf,程序在sub_1037AB11处断下

按F10单步执行

可以看到esi + 0x0c 处为DRMOperationCompleteListener实例指针,它里面的内容此时不为0

按g让程序执行,程序崩溃

结合poc代码我们可以得出结论:MyListener实例在被置null之后被垃圾回收,而在对象中还留存着实例指针,因此存在悬挂指针问题。

转载于:https://www.cnblogs.com/elvirangel/p/8576444.html

CVE-2018-4878相关推荐

  1. 2021年第一季度Sumap网络空间测绘CVE漏洞趋势安全分析报告

    前言 本文主要通过网络测绘角度收集各种资产协议的版本号信息,通过比对CVE漏洞影响范围中的版本号方式,进行安全风险趋势分析,无任何实际危害互联网行为.资产在携带版本中也会存在修复补丁后版本不变的情况. ...

  2. 意想不到!WordPress安全漏洞98%来自插件

    资安业者Imperva在2018年所进行的调查显示,尽管WordPress是黑客最常锁定的内容管理平台(Content Management System),但全球的WordPress网站漏洞,却有高 ...

  3. linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits

    CVE–2018–1000001 [glibc] (glibc <= 2.26) CVE-2017-1000367 [Sudo] (Sudo 1.8.6p7 – 1.8.20) CVE-2017 ...

  4. VMware vCenter Server Appliance Photon OS安全修补程序

    VMware vCenter Server Appliance Photon OS安全修补程序 上次更新时间 2019年12月19日 https://docs.vmware.com/en/VMware ...

  5. linux scp 隐藏文件,scp 客户端发现了隐藏 35 年的漏洞

    原标题:scp 客户端发现了隐藏 35 年的漏洞 scp client multiple vulnerabilities =================================== The ...

  6. 工控系统的全球安全现状:全球漏洞实例分析

    工控系统的全球安全现状:全球漏洞实例分析 一.摘要 ​ 运营技术(OT).网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性.效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来 ...

  7. linux内核漏洞查询,GitHub - F1uYu4n/linux-kernel-exploits: linux-kernel-exploits Linux平台提权漏洞集合...

    CVE–2018–1000001 [glibc] (glibc <= 2.26) CVE-2017-1000367 [Sudo] (Sudo 1.8.6p7 - 1.8.20) CVE-2017 ...

  8. 区块链:对链式结构型 PoS 系统的 “虚假权益” 攻击

    编者注:本文为 Decentralized Systems Lab 发表的讨论使用最长链规则的 PoS 系统安全性的文章.按照某种划分方法,PoS 系统可以分为链式结构型(chain-based)和拜 ...

  9. 对链式结构型 PoS 系统的 “虚假权益” 攻击

    编者注:本文为 Decentralized Systems Lab 发表的讨论使用最长链规则的 PoS 系统安全性的文章.按照某种划分方法,PoS 系统可以分为链式结构型(chain-based)和拜 ...

  10. Metasploit(MSF)渗透测试框架使用教程及基本命令

    第一章 Metasploit渗透框架介绍及体系框架 1.1 Metasploit 渗透测试框架介绍   Metasploit 是一个渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一.使您能够 ...

最新文章

  1. 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想
  2. R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状、使用geom_text函数为pch形状添加标(plot characters)
  3. assimp为什么获得一个黑色的图形_论文图形数据获取工具: Web Plot Digitizer应用详解...
  4. 代理模式和装饰者模式
  5. linux lisp环境,Ubuntu下Common Lisp配置
  6. 今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?
  7. C# 获取随机可用端口号
  8. Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
  9. 超棒的Glide图片加载
  10. 2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?
  11. python发展路线_Python进阶路径-从学徒到大师
  12. lua面向对象封装及元表(metatable)性能测试
  13. 华为一枝独秀!Q3国内智能手机出货量公布:Ov、小米、iPhone侧目
  14. EEPlat的元数据驱动的运行引擎
  15. java连接sftp的几种方式_Java使用SFTP和FTP两种连接服务器的方式实现对文件的上传下载...
  16. C语言常用库函数(含详细用法))
  17. Go:Unresolved dependency
  18. UBUNTU完美运行TM,RTX,MSOffice,迅雷
  19. MySQL查询上周(从周一~周日)
  20. 苹果app退款_苹果App Store应用,5月最新退款

热门文章

  1. Mybatis XML文件的异常
  2. [转]C++基础:C++的结构struct
  3. DateTime格式化问题
  4. 【原创·教程·连载】Microsoft SQL Server 2008 Reporting Services应用系列(一)安装篇...
  5. H3C Basic NAT
  6. visual studio code跳转到定义处插件
  7. JavaScript中的执行环境
  8. quadTree 论文Real-Time Generation of Continuous吃透了
  9. 解决编译不通过Could not find support-compat.aar (com.android.support:support-compat:26.0.0).
  10. Android Jetpack 组件之 Lifecycle源码