[CNNVD]Adobe Reader和Acrobat 内存损坏漏洞(CNNVD-201308-479)

Adobe Reader和Acrobat都是美国奥多比(Adobe)公司的产品。Adobe Reader是一款免费的PDF文件阅读器,Acrobat是一款PDF文件编辑和转换工具。
        Adobe Reader和Acrobat中存在安全漏洞。攻击者可利用该漏洞执行任意代码或造成拒绝服务(内存损坏)。以下版本受到影响:Adobe Reader和Acrobat 9.5.5之前的9.x版本,10.1.7之前的10.x版本,11.0.03之前的11.x版本。

测试环境是Adobe Reader11+Windows 7。挂载调试器打开poc后程序异常退出,但是并未中断在调试器中,在任务管理器中发现Adobe Reader存在2个进程,于是启用子进程调试,重新加载,并中断在调试器中,信息如下。

eax=00000001 ebx=00000001 ecx=64f7f4ea edx=04bb1078 esi=3ef2cc90 edi=00000000
eip=64f7e84b esp=0016e540 ebp=0016e564 iopl=0         nv up ei pl nz ac po cy
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00210213
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.dll -
AcroRd32!DllCanUnloadNow+0x150524:
64f7e84b 8b06            mov     eax,dword ptr [esi]  ds:0023:3ef2cc90=????????

我们往前面看一下会发现esi来自ecx,而由于ecx就是this指针,这里怀疑是对象指针。再后面看一下又有call    dword ptr [eax+364h]。于是重新加载启用堆分配记录。如下

1:007> !heap -p -a esiaddress 3eaeac90 found in_DPH_HEAP_ROOT @ 4451000in free-ed allocation (  DPH_HEAP_BLOCK:         VirtAddr         VirtSize)3136171c:         3eaea000             2000778890b2 verifier!AVrfDebugPageHeapFree+0x000000c277775674 ntdll!RtlDebugFreeHeap+0x0000002f77737aca ntdll!RtlpFreeHeap+0x0000005d77702d68 ntdll!RtlFreeHeap+0x00000142768af1ac kernel32!HeapFree+0x00000014
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\system32\MSVCR100.dll - 6b41016a MSVCR100!free+0x0000001c627e1325 AcroRd32!CTJPEGLibInit+0x0000f6d56290c2af AcroRd32!DllCanUnloadNow+0x0010df88628b3381 AcroRd32!DllCanUnloadNow+0x000b505a6294723b AcroRd32!DllCanUnloadNow+0x00148f14628980b1 AcroRd32!DllCanUnloadNow+0x00099d8a62e54bbf AcroRd32!CTJPEGRotateOptions::operator=+0x001b0aa3628980b1 AcroRd32!DllCanUnloadNow+0x00099d8a62cfabca AcroRd32!CTJPEGRotateOptions::operator=+0x00056aae62cfb275 AcroRd32!CTJPEGRotateOptions::operator=+0x0005715962cf93be AcroRd32!CTJPEGRotateOptions::operator=+0x000552a262da391e AcroRd32!CTJPEGRotateOptions::operator=+0x000ff80262da3b7c AcroRd32!CTJPEGRotateOptions::operator=+0x000ffa6062da3eca AcroRd32!CTJPEGRotateOptions::operator=+0x000ffdae
*** WARNING: Unable to verify checksum for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\Annots.api
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\Annots.api - 64989a3a Annots!PlugInMain+0x000780156498a692 Annots!PlugInMain+0x00078c6d6498af61 Annots!PlugInMain+0x0007953c
*** WARNING: Unable to verify checksum for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\EScript.api
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\EScript.api - 66e2a8e8 EScript!PlugInMain+0x000392b666dfff65 EScript!PlugInMain+0x0000e93366e19749 EScript!PlugInMain+0x0002811766e157ec EScript!PlugInMain+0x000241ba66e378e6 EScript!PlugInMain+0x000462b466e3786c EScript!PlugInMain+0x0004623a66e36951 EScript!PlugInMain+0x0004531f66e3626c EScript!PlugInMain+0x00044c3a66e342da EScript!PlugInMain+0x00042ca864989e26 Annots!PlugInMain+0x00078401

很明显是已经释放的内存块,那我们来看下这个内存块是在哪里分配的。通过对分配函数下断向前摸到了这块内存的分配记录

1:011> !heap -p -a 04878de8  address 04878de8 found in_DPH_HEAP_ROOT @ 45f1000in busy allocation (  DPH_HEAP_BLOCK:         UserAddr         UserSize -         VirtAddr         VirtSize)48f05e4:          4878de8              214 -          4878000             200077888e89 verifier!AVrfDebugPageHeapAllocate+0x0000022977774ea6 ntdll!RtlDebugAllocateHeap+0x0000003077737d96 ntdll!RtlpAllocateHeap+0x000000c4777034ca ntdll!RtlAllocateHeap+0x0000023a6b7709ee MSVCR100!unlock+0x000000ba6b771e32 MSVCR100!calloc_crt+0x000000166b771d93 MSVCR100!mbtowc_l+0x000001be6b771e16 MSVCR100!mbtowc_l+0x000002417770af24 ntdll!LdrpCallInitRoutine+0x000000147770b511 ntdll!LdrpInitializeThread+0x0000015b7770b298 ntdll!_LdrpInitialize+0x000001ad7770b2c5 ntdll!LdrInitializeThunk+0x00000010

最后再看一下重用时的操作

1:007> kp
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
001fe028 64f7e0d2 AcroRd32!DllCanUnloadNow+0x150524
001fe04c 64f7f3e3 AcroRd32!DllCanUnloadNow+0x14fdab
001fe054 64f7d996 AcroRd32!DllCanUnloadNow+0x1510bc
001fe0a0 64f7c68c AcroRd32!DllCanUnloadNow+0x14f66f
001fe0d0 64f7c50e AcroRd32!DllCanUnloadNow+0x14e365
001fe160 64f7c206 AcroRd32!DllCanUnloadNow+0x14e1e7
001fe170 64f7c1a1 AcroRd32!DllCanUnloadNow+0x14dedf
001fe17c 64ed712e AcroRd32!DllCanUnloadNow+0x14de7a
001fe1a8 64f7ae0e AcroRd32!DllCanUnloadNow+0xa8e07
001fe1d8 64f76d1d AcroRd32!DllCanUnloadNow+0x14cae7
001fe1fc 64f76bf1 AcroRd32!DllCanUnloadNow+0x1489f6
001fe214 64f7434c AcroRd32!DllCanUnloadNow+0x1488ca
001fe2ac 64e2e440 AcroRd32!DllCanUnloadNow+0x146025
001fe2d8 64f73a64 AcroRd32!DllCanUnloadNow+0x119
001fe300 653d38ef AcroRd32!DllCanUnloadNow+0x14573d
001fe37c 653d3b7c AcroRd32!CTJPEGRotateOptions::operator=+0xff7d3
001fe390 653d3eca AcroRd32!CTJPEGRotateOptions::operator=+0xffa60
*** WARNING: Unable to verify checksum for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\Annots.api
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\Adobe\Reader 11.0\Reader\plug_ins\Annots.api -
001fe39c 63009a3a AcroRd32!CTJPEGRotateOptions::operator=+0xffdae
001fe3b0 6300a692 Annots!PlugInMain+0x78015
001fe3c8 6300af61 Annots!PlugInMain+0x78c6d

转载于:https://www.cnblogs.com/Ox9A82/p/5726680.html

CVE-2013-3346Adobe Reader和Acrobat 内存损坏漏洞分析相关推荐

  1. Windows Server中的 WINS 服务器远程内存损坏漏洞分析

    本文讲的是Windows Server中的 WINS 服务器远程内存损坏漏洞分析, 漏洞概要 在2016年12月,FortiGuard Labs发现并报告了Microsoft Windows Serv ...

  2. 热门开源多媒体库 PJSIP 被爆5个内存损坏漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  3. FreeBSD BSDiff 被曝高危内存损坏漏洞,时隔4年终修复

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Bsdiff 和 bspatch 分别是构建二进制文件和响应的打补丁工具,它们能够有效地为应用程序更新机制应用二进制补丁. 漏洞概述 ...

  4. CVE-2019-1367 | 脚本引擎内存损坏漏洞

    CVE-2019-1367 | 脚本引擎内存损坏漏洞 安全漏洞 发布时间: 2019-09-23 MITRE CVE-2019-1367 本页内容 执行摘要 利用指数评估 软件更新 缓解 变通方法 常 ...

  5. 速修复!这个严重的Zlib内存损坏漏洞已存在17年!

     聚焦源代码安全,网罗国内外最新资讯! 作者:Jessica Lyons Hardcastle 编译:代码卫士团队 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人&qu ...

  6. 固件安全性—防止内存损坏和注入攻击

    固件安全性-防止内存损坏和注入攻击 Firmware Security – Preventing memory corruption and injection attacks 构成物联网(IoT)主 ...

  7. Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍

    本文讲的是Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍, 前言 建议阅读本文之前,你对ARM组件的有个基本了解,本文会先为你介绍32位Linux环境中进程的内存布局,然后再介绍堆栈和堆 ...

  8. Adobe发布Reader和Acrobat漏洞补丁

    据国外媒体报道,Adobe近日对Adobe Reader 和Adobe Acrobat进行了更新,以此修补一项影响Windows.Mac.Linux和Unix的严重的JavaScript漏洞. 正如公 ...

  9. 【漏洞分析】Adobe Acrobat和Reader整数溢出漏洞(CVE-2012-0774)

    0x00 前言 总体来说坑不多,但是对于windbg没有watchpoint功能这一点,真的是很坑. 0x01 简介 Adobe Acrobat和Reader在True Type Font (TTF) ...

最新文章

  1. SAP Return to External Vendor
  2. Struts2, jquery, select二级联动
  3. [笔记]画三角函数-涵盖画图基础
  4. 当前框架下微服务开发注意事项 @Arthur
  5. WPF DataGrid根据内容设置行颜色
  6. CF525D-Arthur and Walls【贪心】
  7. PHP之MVC项目实战(二)
  8. (69)信号发生器DDS正弦波设计(一)(第14天)
  9. PowerDesigner(八)-面向对象模型(用例图,序列图,类图,生成Java源代码及Java源代码生成类图)(转)...
  10. UISwitch的使用
  11. Embergen 流体模拟工具
  12. mysql之从入门到删库跑路
  13. USRPx310的底板介绍
  14. HTML5 validity api,html5 form-Validity验证函数
  15. 一剑开尘走龙蛇 XGBoost
  16. 【正点原子Linux连载】第七十一章 Linux 4G通信实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  17. 两行数据进行对比-python
  18. Google play billing Alpha / Beta 测试
  19. CF14E Camels
  20. 搞笑文章|如何瘫痪你的电脑

热门文章

  1. 「镁客·请讲」吉影科技黄俊平:水下机器人市场的拓展,需要更多行业者协同并进...
  2. softlockup检测(watchdog)原理(用于检测系统调度是否正常)
  3. localStorage本地存储数组、读取、修改、删除
  4. Java编程的逻辑 (56) - 文件概述
  5. createSQLQuery与createQuery的区别
  6. ch4 MySQL 安全管理
  7. ZendStdio 快捷键
  8. 开源计算机集群监控Ganglia应用视频
  9. ASP.NET2.0应用中定制安全凭证之理论篇
  10. mysql 表名通配符导出,mysqldump只有某些前缀/ Mysqldump通配符的表?