CVE-2013-2729 Adobe Reader和Acrobat 数字错误漏洞
这个洞是在论坛里看到的,感觉很有意思,来学习一下。个人感觉IE或者说是浏览器的洞和Adobe洞都是比较难调的,主要是有大量的类难以摸清之间的关系。
这个洞是一个整数溢出的洞,这个不是重点。重点是利用的思路,利用思路是挖坑法,即所谓的make hole,通过挖坑来泄漏dll的基址,然后再加以利用。make hole并不是独门绝技,这种方法在IE和Adobe的漏洞利用中都有出现(主要是因为可以嵌入js,实现自由分配内存?),但是我觉得这种方法还是很巧妙的,就像大牛说的是一种比较优雅的手法。尤其是对内存的精准控制,个人感觉是一种艺术:)

漏洞的关键点如图所示,xpos和ypos的来自于pdf文件中,其中如果xpos在文件中的初始值为0xff那么经过运算后为可控制为0xFFFFFFF8

而这里xpos是当作有符号数来运算的,就是说有符号数发生了上溢成了负数(注意,此堆块称为texture)。下面来看exp作者是怎么利用这个整数溢出的。
作者首先控制texture的大小为0x130字节(texture大小可由xpos和ypos控制),然后在内存中利用js分配大量的0x130个字节大小的字符串对象,然后间隔的释放字符串对象实现挖坑。这时texture就会落在坑中。通过整数溢出向此堆头的8个字节写入,致使reader释放了前一个0x130大小的字符串对象。然后reader会创建一个0x130大小的imgstruct,这个结构中包含有虚表指针。由于js在分配字符串对象时保有指针,那么这时就可以直接读出虚表地址。通过虚表地址可以获得AcroRd32.dll模块的基址,这就实现了绕过aslr。然后通过释放imgstruct的内存,再在poc中分配布置了伪虚表的堆块来占位,通过js语句使reader调用imgstruct的虚表实现控制了EIP。然后利用就是换栈的堆喷了。最后附一张大牛写的总结

CVE-2013-2729 Adobe Reader和Acrobat 数字错误漏洞的更多相关文章
- CVE-2013-3346Adobe Reader和Acrobat 内存损坏漏洞分析
[CNNVD]Adobe Reader和Acrobat 内存损坏漏洞(CNNVD-201308-479) Adobe Reader和Acrobat都是美国奥多比(Adobe)公司的产品.Adobe R ...
- Linux kernel ‘lbs_debugfs_write’函数数字错误漏洞
漏洞名称: Linux kernel ‘lbs_debugfs_write’函数数字错误漏洞 CNNVD编号: CNNVD-201311-421 发布时间: 2013-11-29 更新时间: 2013 ...
- Linux kernel get_prng_bytes函数数字错误漏洞
漏洞名称: Linux kernel get_prng_bytes函数数字错误漏洞 CNNVD编号: CNNVD-201310-142 发布时间: 2013-10-11 更新时间: 2013-10-1 ...
- Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级) 【转】
对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...
- Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级)
对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...
- CVE-2012-0774:Adobe Reader TrueType 字体整数溢出漏洞调试分析
0x01 TrueType 字体 TTF 字体是 Apple 和 Microsoft 两家公司共同推出的字体格式,现在已经广泛的运用于 Windows 操作系统,其中 PDF 文档也可以嵌入 TTF ...
- CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
Adobe Acrobat和Reader都是美国Adobe公司开发的非常流行的PDF文件阅读器. 基于Window和Mac OS X的Adobe Reader和Acrobat 9.4之前的9.x ...
- [漏洞复现]CVE-2010-2883 Adobe Reader 打开pdf电脑即刻中招
1.漏洞概述: CVE-2010-2883漏洞原理:“Adobe Reader在处理CoolType字体文件的sing表时,存在栈溢出漏洞,当打开特制的恶意PDF文件时,可允许任意代码远程执行.” 影 ...
- Adobe Reader/Acrobat修改页面底色为豆沙绿
Adobe Acrobat_Pro_8修改PDF页面底色为豆沙绿保护视力(同样适用于Adobe Reader) http://jingyan.baidu.com/article/9989c746189 ...
随机推荐
- C++ 文本查询2.0(逻辑查询)
代码实例实现了继承和友元之间的关系,以及为了隐藏实际继承实现,而实现的接口类,代码偏乱,楼主- -自看的(提醒作用) TextQuery.h // // Created by 徐爱东 on 17/7/ ...
- linux命令总结之lsof命令
简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控 ...
- python3.5无法安装pip,报错ImportError: cannot import name 'HTTPSHandler'
本人系统为:centos6 解决方法: 1 安装openssl yum install openssl 2 安装openssl-devel yum install openssl-devel 3 ...
- Java基础-日期格式化DateFormat类简介
Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...
- Hi35xx 通用GPIO 使用篇(板子3G电源控制脚说明)
在一个嵌入式系统中使用最多的莫过于 通用输入输出 GPIO口.看到论坛中经常有朋友问海思为什么没有提供GPIO驱动.其实不然. 在海思SDK xxx/osdrv/tools/board_tools/ ...
- bzoj千题计划150:bzoj2738: 矩阵乘法
http://www.lydsy.com/JudgeOnline/problem.php?id=2738 整体二分 二维树状数组累积 #include<cstdio> #include&l ...
- Elasticsearch之Java实战
资料 http://www.cnblogs.com/kamong/p/6099914.html 搭建Elasticsearch服务器
- Jekens 配置多项目SCM GitLab+Jenkins持续集成环境
参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...
- Anaconda+django写出第一个web app(四)
前面对Models有了一些了解,今天开始进一步了解Views,了解Views如何和Models交互以及了解模板(templates). 打开main文件夹下的views.py,重新编写homepage ...
- HDU 4370 0 or 1 (最短路)
[题目链接](http://acm.hdu.edu.cn/showproblem.ph Problem Description Given a n/n matrix Cij (1<=i,j< ...