首页 > 其他分享 >漏洞丨CVE20102883

漏洞丨CVE20102883

时间:2023-03-31 20:01:17浏览次数:48  
标签:8.1 CVE20102883 Adobe 漏洞 8.2 Reader Acrobat

作者丨黑蛋 一、漏洞描述 此漏洞编号CVE-2010-2883,看着是一个很简单的栈溢出漏洞,但是也要看怎么玩了。这个漏洞是Adobe Acrobat Reader软件中CoolType.dll在解析字体文件SING表中的uniqueName字段的调用了strcat函数,但是对参数没有做出判断,没有检查uniqueName字段长度,导致了栈溢出漏洞。此漏洞影响版本如下: Adobe Acrobat 8.0 Adobe Acrobat 8.1 Adobe Acrobat 8.1.1 Adobe Acrobat 8.1.2 Adobe Acrobat 8.1.3 Adobe Acrobat 8.1.4 Adobe Acrobat 8.1.5 Adobe Acrobat 8.1.6 Adobe Acrobat 8.1.7 Adobe Acrobat 8.2 Adobe Acrobat 8.2.1 Adobe Acrobat 8.2.2 Adobe Acrobat 8.2.4 Adobe Acrobat 9.0 Adobe Acrobat 9.1 Adobe Acrobat 9.1.1 Adobe Acrobat 9.1.2 Adobe Acrobat 9.1.3 Adobe Acrobat 9.2 Adobe Acrobat 9.3 Adobe Acrobat 9.3.1 Adobe Acrobat 9.3.2 Adobe Acrobat 9.3.3 Adobe Acrobat Apple Mac_Os_X Microsoft Windows Adobe Acrobat_Reader 8.0 Adobe Acrobat_Reader 8.1 Adobe Acrobat_Reader 8.1.1 Adobe Acrobat_Reader 8.1.2 Adobe Acrobat_Reader 8.1.4 Adobe Acrobat_Reader 8.1.5 Adobe Acrobat_Reader 8.1.6 Adobe Acrobat_Reader 8.1.7 Adobe Acrobat_Reader 8.2.1 Adobe Acrobat_Reader 8.2.2 Adobe Acrobat_Reader 8.2.3 Adobe Acrobat_Reader 8.2.4 Adobe Acrobat_Reader 9.0 Adobe Acrobat_Reader 9.1 Adobe Acrobat_Reader 9.1.1 Adobe Acrobat_Reader 9.1.2 Adobe Acrobat_Reader 9.1.3 Adobe Acrobat_Reader 9.2 Adobe Acrobat_Reader 9.3 Adobe Acrobat_Reader 9.3.1 Adobe Acrobat_Reader 9.3.2 Adobe Acrobat_Reader 9.3.3 这次我用的是9.0版本。

二、环境准备 虚拟机

调试工具

目标软件

16进制编辑器

Win7X86SP1、Kali

Ida、x32dbg

Adobe Acrobat_Reader 9.0

010Editor

三、漏洞复现 使用MSF生成EXP: 1.png

然后在Win7中安装Adobe Acrobat_Reader 9.0: 2.png

把Kali中的Exp拖到本机,再拷贝到Win7中,拖到Adobe中: 3.png

弹出计算器,证明漏洞存在,Exp也没有问题。

四、漏洞分析 首先我们需要做几个准备工作,1、改掉随机基址,省的麻烦,把用010Editor打开Adobe,修改如下地方:

4.png

2、在把软件拖调试器中,忽略程序自身异常(因为我这边调试器接管异常,导致程序运行不下去,所以需要忽略)

5.png

接下来就是正儿八经分析了,因为已知漏洞问题是在CoolType.dll,直接在安装文件夹下找到这个dll,拖到Ida中: 6.png

然后Alt+T,搜索sing: 7.png

双击到标记的一条:

8.png

下面这一坨就是漏洞溢出的地方,如果有需要可以自行分析一下,或者使用其他手段找到溢出点:

9.png

我们直接看strcat函数,地址是0x0803DCA4,这里基址是0x08000000,所以函数偏移是3DCA4,接下来我们就是动态追踪一下计算器弹出的具体过程,用x32dbg附加软件,F9运行,等软件加载完所需要的dll,然后 查看各个模块基址,找到CoolType.dll,基址是0x60690000,那么加上偏移就是0x3DCA4=0x606C DCA4: 10.png

跳转到0x606CDCA4,下断点: 11.png

接下来把我们生成的Exp拖到软件中,稍微等会,就断在了我们断点处,然后在堆栈窗口中转到EBP,观察溢出情况: 12.png

我们先看看strcat函数的俩个参数,堆栈中转到ESP,可以看到,源数据和要拷贝的地址,而要拷贝的地址就是EBP: 13.png

然后走过strcat函数,观察EBP的位置,发现已经被淹没覆盖: 14.png

然后继续往下走,走到如下函数单步步入: 15.png

然后步入下面这个call: 16.png

然后步入第一个call: 17.png

然后走到如下位置: 18.png

这里的call是exp特意构造的,如果追寻eax的来源,就会发现他指向我们拷贝的数据中的一个地址,这里是把栈抬高到我们淹没EBP那里,进入这个函数就会发现,函数流程已经被我们劫持了,从这里开始就进入我们的流程:

19.png

接下来会进入一系列ROP链(这里使用了堆喷技术,目的为了绕过DEP): 20.png

走到这里,调用了一个CreateFile创建了一个iso88591文件,其参数都是Exp构造好的: 21.png 22.png!

文件在这: 23.png

在这里可以看到EAX指向一个CreateFileMapping函数,创建文件映射:

24.png

随后跳转到此函数: 25.png

之后根据同样手法,进入MapViewOfFile函数,将一个文件映射对象映射到当前应用程序的地址空间: 16.png

跑了半天,又用之前的手法走到memcpy函数,如果留意的话,就会发现,这里是把shellcode写到MapViewOfFile返回的地址,因为这里是可写可读可执行,绕了半个地球,就是为了绕过DEP:

27.png

然后这里就是正儿八经shellcode地方: 28.png

经过一段解密,可以看到字符串calc.exe: 29.png

从这里可以看到是通过CreateProcessA创建了计算器:

30.png31.png

以上就是Exp的运行过程,最后弹出计算器的结果。

五、总结 这个Exp的编写用了很多技术,包括利用了PDF文件可执行js代码的特性,然后使用栈溢出劫持运行流程到icucnv36.dll,这个模块没有ASLR保护,然后再通过ROP链,各种寄存器布置,然后新建文件,又将文件映射到内存,再把shellcode拷贝到这块区域。 参考链接:http://static.anquanke.com/download/b/security-geek-2019-q2/article-12.html

标签:8.1,CVE20102883,Adobe,漏洞,8.2,Reader,Acrobat
From: https://blog.51cto.com/u_15452079/6162252

相关文章

  • PfSense pfBlockerNG 未授权RCE漏洞(CVE-2022-31814)
    PfSensepfBlockerNG未授权RCE漏洞(CVE-2022-31814)概述PfSense系统的插件pfBlockerNG引起的未授权RCE漏洞pfSense是一个基于FreeBSD操作系统开发的防火墙和路由器软件......
  • 脏牛漏洞原理
    漏洞概述dirtycow漏洞是一种发生在写时复制的竞态条件产生的漏洞写时复制(copyonwrite)允许不同进程中的虚拟内存映射到相同物理内存页面的技术三个重要流程A:制作......
  • showDoc漏洞
    攻击者使用showDoc的漏洞传播僵尸网络 近日,阿里云安全团队基于威胁情报挖掘网络攻击日志的过程中,发现了使用showDoc漏洞传播僵尸网络和挖矿软件的攻击事件,使用该......
  • 基于mysqludf_sys.so漏洞的提权
    基于mysqludf_sys.so漏洞的提权 有时候目标机里会存在mysqludf_sys.so文件,那即表示数据库里可能存在用户自定义的功能函数。UDF(userdefinedfunction),即用户自定......
  • 小皮Windows web面板漏洞详解
    漏洞简介PhpStudy国内12年老牌公益软件,集安全、高效、功能与一体,已获得全球用户认可安装,运维也高效。支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心......
  • 变量覆盖--duomicms通杀漏洞
    下载源码本地测试然后进行代码审计发现这个地方可能存在变量覆盖:/duomiphp/common.php查看包含了common.php的地方先看看后台登录的地方,调......
  • 【漏洞复现】Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)
    【漏洞复现】ApacheLog4j2lookupJNDI注入漏洞(CVE-2021-44228)0x01漏洞描述ApacheLog4j2是一个基于Java的日志记录工具,是对Log4j的升级,它比其前身Log4j1.x......
  • 浅析Nginx文件解析漏洞
    浅析Nginx文件解析漏洞本文章将从五个维度对Nginx文件解析漏洞进行剖析——原理、危害、检测、防御、复现1、原理​ Nginx文件解析漏洞的产生原因是由于Nginx配置文件de......
  • DC-8(sql注入漏洞)
    信息收集扫描ip和端口:通过nmap扫描ip和端口发现:ip为192.168.6.152,开放端口号为80和22扫描目录:dirb和desearch,发现了疑似登录界面查看框架:Drupal7漏洞扫描:searchsploitDru......
  • Apache Kafka JNDI注入(CVE-2023-25194)漏洞复现浅析
    关于ApacheKafka是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和任务关键型应用程序。影响版本2.4.0<=Apachekafka<=3.2.2环境......