cve-2015-5199漏洞分析

继续之前hackteam的flash漏洞,这次的对象为cve-2015-5199,遂做一下记录。

首先,在该exp中TryExpl函数为漏洞的触发函数,该函数也为本次调试的主要对象,函数的开始首先创建两个Array对象a和_gc.

此处对Array函数下断,对象断在array。

函数返回之后a  array对象生成,地址为04115a30,对于Array对象在其偏移+10的地方保存了实际Array内容的地址。此处为03d800d8,03d800d8+8即可观察到array中实际保存的内容。

Gc array对象生成,此处为04115a30。

将a(喷射对象)保存在_gc中,此处主要是考虑到之后会有大量的释放操作,以此来保护a对象内存。

gc.push(a),push之后,a对象的地址保存到了_gc对象中,如下图所示。

开始对a进行循环赋值,一共操作5a次。

生成一次之后,得到一组MyClass2,ByteArray,MyClass2的内存结构。

A对象中对应的两个myclass2和一个array

对应的myclass2

具体对MyClass2结构的布局如下

接下来详细分析一个MyClass2对象的生成过程,下图的call eax jitcode中,实现对MyClass2对象的生成。

该处完成0x11223344赋值,该处jit结束之后,myclass2已经完成赋值。

生成的Bytearray。

生成的第二个Myclass2

循环几次之后a中保存的多组结构。

如下图图所示,最后生成的a ,注意由于内存分配的原因,可以发现,在分配的一开始,每一组myclass2,array,myclass2在内存中并不是连续的,如下图所示,之后内存的分配趋于稳定,最后形成的每一组中的这三个对象在内存空中内存布局连续,这也是为什么之后的exp中循环赋值的时候是从数组后面往前赋值的原因,因为后面内存连续。

a中内存布局完成之后,进入以下循环,在该循环中,会依次将a中Bytearray赋值给_ba,之后MyClass对象的赋值将导致valueof函数的调用。

对应的valuefo函数,该函数中对ba.length的修改,将导致a中对应的Array对象的内存释放,之后代码中的一个循环操作完成对释放对象的站位。

_va Array对象生成,此处的地址为041152e0。

同样申城的_va对象会进行gc.push(_va)的操作。

对_ba.length 进行1100赋值操作。

改变长度之后会导致_ba中的内存重新分配,因为_ba中的值其实就是a中所有的ByteArray结构,所以对于一组Myclass2,ByteArray,Myclass2的连续空间而言,相当于中间的ByetArray

直接被释放。

因为发释放时循环从a array的后向前,如下图所示。

结合之前的中a array的结构,可以确定第一个释放的ByteArra结构的地址为0483b8c9

站位之后可以发现,此时0483b8c9处指向的地址和正常的ByteArray已经不同,此时已被

释放。

释放之后,生成vector.<uint>(0x3f0)用于站位,此处0x3f0*4 = fc0,内存对齐之后,为0x1000,正好满足站位的条件。

查看_va的内存,可以发现,此时vector对象的地址040f8ab1已经保存在_va中,在该对象偏移1c处保存了vector的内存空间的地址,不过同样该处的地址需要>>16的操作,最后vector在0x0489c000处,可以看到在偏移0处正好为vector的长度3f0.

此时释放的ByteArray空间已经被站位,当返回的时候,0x40的值会被赋值给_ba[3]中指向ByteArray的地址,因为此处对于ByteArray的引用存在问题,依然指向old的ByteArray,此时ByteArray内存的地址实际上是我们站位的vector,此时的赋值会将0x40赋值到vector对象长度地址的高位处,从而导致一个超长的vector产生,如下图下断点。

运行之后,产生一个超长的vector

此时已经赋值成功。

时间: 2024-10-17 10:41:23

cve-2015-5199漏洞分析的相关文章

2015年11月数据安全漏洞分析报告

报告核心观点 1.千帆过尽,SQL注入仍"不改" 2.本月金融业漏洞增长尤为突出 3.11月常见数据泄露原因分析 4.解决弱口令安全建议 报告正文 2015年11月,安华每日安全资讯总结发布了126个数据泄密高危漏洞,这些漏洞分别来自乌云.补天.漏洞盒子等平台,涉及8个行业,公司机构.互联 网.交通运输.教育.金融.能源.运营商.政府.漏洞类型涉及,SQL注入.系统漏洞.弱口令等7类,其中SQL注入仍然是漏洞类型的重灾区. 千帆过尽,SQL注入仍"不改" 数据安全问

CVE-2014-1767 漏洞分析(2015.1)

CVE-2014-1767 漏洞分析 1. 简介 该漏洞是由于Windows的afd.sys驱动在对系统内存的管理操作中,存在着悬垂指针的问题.在特定情况下攻击者可以通过该悬垂指针造成内存的double free漏洞. 实现对漏洞的有效利用,攻击者利用成功可导致权限提升.afd.sys是内核用来管理socket的模块. 影响的系统包括(32bit & 64 bit):  Windows Server 2003 Windows Vista Windows Server 2008 Windows 7

Java反序列化漏洞分析

相关学习资料 http://www.freebuf.com/vuls/90840.html https://security.tencent.com/index.php/blog/msg/97 http://www.tuicool.com/articles/ZvMbIne http://www.freebuf.com/vuls/86566.html http://sec.chinabyte.com/435/13618435.shtml http://www.myhack58.com/Articl

PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/phpcms_v9/index.php?m=member&c=index&a=login dosubmit=1&username=phpcms&password=123456%26username%3d%2527%2bunion%2bselect%2b%25272%2

PCMan FTP Server缓冲区溢出漏洞分析与利用

简要介绍 这个软件是台湾国立阳明大学医学系的一个学生在大四的时候写的,这个漏洞是有CVE的(CVE-2013-4730),软件应该还挺普及的,这是一个缓冲区溢出漏洞 具体exp可以点这里 实验用poc(其实这里直接对USER命令溢出都是可以的,即不用知道账号密码即可远程代码执行,USER命令的buf距离返回地址是2000) import socket as s from sys import argv # if(len(argv) != 4): print "USAGE: %s host <

比葫芦娃还可怕的百度全系APP SDK漏洞 - WormHole虫洞漏洞分析报告 (转载)

瘦蛟舞 · 2015/11/02 10:50 作者:瘦蛟舞,蒸米 ”You can’t have a back door in the software because you can’t have a back door that’s only for the good guys.“ - Apple CEO Tim Cook ”你不应该给软件装后门因为你不能保证这个后门只有好人能够使用.” – 苹果CEO 库克 0x00 序 最早接触网络安全的人一定还记得当年RPC冲击波,WebDav等远程攻

金融行业安全漏洞分析报告

报告介绍 互联网+时代的到来,人们充分享受新时代科技创新成果的便利同时,万物互联带来的信息安全风险也日渐提高,信息泄密事件层出不穷,在资金体量庞大.用户信息集中.安全隐患影响深远的金融领域,所面临的安全问题尤为凸显.人们真切地感知到,原有的金融服务模式被颠覆,网银.第三方支付.互联网金融等新兴模式异军突起.用户也在这些新的业务模式下,将自身姓名.***号码.手机号码等身份认证信息与业务紧密绑定关联.所以说,互联网的发展为传统的信息防御体系划开了一道口子,打破看似牢不可破的安全防护状态,直逼用户核

【网络安全】Snort漏洞分析规则提取验证全流程讲述

本文以CVE 2014-6034为例进行漏洞分析与验证,包括环境搭建抓包,特征提取验证各个环节. 1.下载软件: ManageEngine OpManager 9 地址:http://manageengine-opmanager.soft32.com/ Kali Linux https://www.kali.org/downloads/ 我下载在是Kali Linux 64 bit ISO 1.0.9a ISO 2.环境搭建 ManageEngine OpManager 9 直接点击安装即可,安

QQ空间官方账号被黑产利用漏洞分析

原文地址:https://mozhe.cn/news/detail/333 2011年,Facebook推出了默认人脸识别功能实现自动识别圈人功能,2013年,Instagram推出名称为"你的照片"的圈人功能.基本都是用户利用这个功能在照片中圈出好友,并通过标签直接找到该好友的所有照片.圈人可以让照片成为找人的最佳途径. 在2013年,QQ空间也推出了圈人功能,在他人对空间说说中,找到要圈人的照片,圈出照片中的好友,从中选择自己相对应的好友就可以.这个其实是个不错的功能,借助他人可以

Intel CPU 漏洞分析

Intel CPU漏洞分析报告 预备知识 存储分级 由于计算机存储分级的特性(第一级:寄存器,第二级:高速缓存,第三级:内存,第四级:磁盘),每一级之间的访问速度差距高达数量级.所以处理器会将用到的数据和指令加载进高速缓存(现代CPU分指令高速缓存与数据高速缓存),以提高计算机的执行速度.其加载数据或指令进高速缓存的原则是(空间局部性.时间局部性): 1. 时间局部性:如果一个数据被访问,那么在近期它很可能还会被再次访问. 2. 空间局部性: 与当前访问的数据紧挨着的数据,近期将会被访问 分支预