CVE-2018-4878
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相关推荐
- 2021年第一季度Sumap网络空间测绘CVE漏洞趋势安全分析报告
前言 本文主要通过网络测绘角度收集各种资产协议的版本号信息,通过比对CVE漏洞影响范围中的版本号方式,进行安全风险趋势分析,无任何实际危害互联网行为.资产在携带版本中也会存在修复补丁后版本不变的情况. ...
- 意想不到!WordPress安全漏洞98%来自插件
资安业者Imperva在2018年所进行的调查显示,尽管WordPress是黑客最常锁定的内容管理平台(Content Management System),但全球的WordPress网站漏洞,却有高 ...
- 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 ...
- VMware vCenter Server Appliance Photon OS安全修补程序
VMware vCenter Server Appliance Photon OS安全修补程序 上次更新时间 2019年12月19日 https://docs.vmware.com/en/VMware ...
- linux scp 隐藏文件,scp 客户端发现了隐藏 35 年的漏洞
原标题:scp 客户端发现了隐藏 35 年的漏洞 scp client multiple vulnerabilities =================================== The ...
- 工控系统的全球安全现状:全球漏洞实例分析
工控系统的全球安全现状:全球漏洞实例分析 一.摘要 运营技术(OT).网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性.效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来 ...
- 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 ...
- 区块链:对链式结构型 PoS 系统的 “虚假权益” 攻击
编者注:本文为 Decentralized Systems Lab 发表的讨论使用最长链规则的 PoS 系统安全性的文章.按照某种划分方法,PoS 系统可以分为链式结构型(chain-based)和拜 ...
- 对链式结构型 PoS 系统的 “虚假权益” 攻击
编者注:本文为 Decentralized Systems Lab 发表的讨论使用最长链规则的 PoS 系统安全性的文章.按照某种划分方法,PoS 系统可以分为链式结构型(chain-based)和拜 ...
- Metasploit(MSF)渗透测试框架使用教程及基本命令
第一章 Metasploit渗透框架介绍及体系框架 1.1 Metasploit 渗透测试框架介绍 Metasploit 是一个渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一.使您能够 ...
最新文章
- 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想
- R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状、使用geom_text函数为pch形状添加标(plot characters)
- assimp为什么获得一个黑色的图形_论文图形数据获取工具: Web Plot Digitizer应用详解...
- 代理模式和装饰者模式
- linux lisp环境,Ubuntu下Common Lisp配置
- 今年双 11,阿里业务 100% 上云,云原生有哪些技术亮点?
- C# 获取随机可用端口号
- Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
- 超棒的Glide图片加载
- 2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?
- python发展路线_Python进阶路径-从学徒到大师
- lua面向对象封装及元表(metatable)性能测试
- 华为一枝独秀!Q3国内智能手机出货量公布:Ov、小米、iPhone侧目
- EEPlat的元数据驱动的运行引擎
- java连接sftp的几种方式_Java使用SFTP和FTP两种连接服务器的方式实现对文件的上传下载...
- C语言常用库函数(含详细用法))
- Go:Unresolved dependency
- UBUNTU完美运行TM,RTX,MSOffice,迅雷
- MySQL查询上周(从周一~周日)
- 苹果app退款_苹果App Store应用,5月最新退款
热门文章
- Mybatis XML文件的异常
- [转]C++基础:C++的结构struct
- DateTime格式化问题
- 【原创·教程·连载】Microsoft SQL Server 2008 Reporting Services应用系列(一)安装篇...
- H3C Basic NAT
- visual studio code跳转到定义处插件
- JavaScript中的执行环境
- quadTree 论文Real-Time Generation of Continuous吃透了
- 解决编译不通过Could not find support-compat.aar (com.android.support:support-compat:26.0.0).
- Android Jetpack 组件之 Lifecycle源码