首页 > 其他分享 >福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现

时间:2023-06-26 15:01:19浏览次数:67  
标签:文件 27363 对象 文档 代码执行 2023 PDF Foxit

漏洞概述

福建福昕软件开发股份有限公司是一家国际化运营的PDF电子文档解决方案提供厂商,提供文档的生成、转换、显示、编辑、搜索、打印、存储、签章、表单、保护、安全分发管理等涵盖文档生命周期的产品技术与解决方案。其下产品Foxit PDF Reader和Foxit PDF Editor的javascript函数exportXFAData,只验证了cPath参数中文件夹路径是否存在,未校验文件后缀的合法性,导致可以将交互式表单(XML Forms Architecture,简称XFA)数据导出为任意后缀的文件。XFA数据中可以包含javascript代码,将其导出为后缀为hta的文件,写入Windows Startup 文件夹,该文件可以在计算机重启后自动运行,实现任意代码执行。


影响范围


  • Foxit PDF Reader <= 12.1.1.15289
  • Foxit PDF Editor 12.x <= 12.1.1.15289
  • Foxit PDF Editor 11.x <= 11.2.5.53785
  • Foxit PDF Editor <= 10.1.11.37866


复现环境





  • 操作系统:Win7 sp1 32位操作系统
  • 分析工具:IDA、OD、Procexp、PdfStreamDumper


PDF文件格式





便携式文档格式(英语:Portable Document Format,缩写:PDF)是一种用独立于应用程序、硬件、操作系统的方式呈现文档的文件格式,最早由Adobe公司开发。每个PDF文件包含固定布局的平面文档的完整描述,包括文本、字形、图形及其他需要显示的信息。PDF文件除平面的文本和图形外,还可能包括逻辑结构元素,注释、表单、图层、富媒体(包括视频内容)之类的交互元素,使用U3D或PRC的三维对象,以及多种其他数据内容。PDF规范还提供了启用这些功能时所需的加密功能、数字签名、文档附件和元数据等。


PDF文件整体上可分为文件头(Header)、对象集合(Body)、交叉引用表(Xref table)、文件尾(Trailer)四个部分,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_数据

其中Body是PDF文件的核心部分,文件中用到的所有对象,包括文本、图象、音乐、视频、字体、超连接、加密信息、文档结构信息等等,都在这里定义。一个对象的基本格式,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_javascript_02

一个对象的定义包含4个部分:


  • 对象序号
  • 对象生成号
  • 对象定义范围
  • 对象内容


最前面的数字1是对象序号,用来唯一标记一个对象;0是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字是累加的,它和对象序号一起标记是原始对象还是修改后的对象;obj和end obj是对象的定义范围,相当于定义了对象的开始和结束的位置;obj和end obj中间的部分是PDF规定的任意合法对象,主要包括booleam,numeric,string,name,array,dictionary,stream等,感兴趣的读者可自行了解其详细内容。


为了增强PDF文档的交互性和动态性,PDF还支持JavaScript。PDF中的JavaScript与Web中的JavaScript有所不同,功能受到各种安全限制和约束。通过JavaScript,可以在PDF文件中处理事件,例如单击、双击、鼠标进入或离开、文本输入等,还可以用于处理PDF表单中的数据校验、格式化、提交和重置等功能,也可以实现PDF中的动态效果,例如隐藏、显示和移动元素,更改文本内容等。比如在文档即将关闭的时候,弹出提示对话的javascript的代码为:app.alert("javascript示例:文档即将关闭,是否已保存所有修改?"),如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_后缀_03

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_后缀_04


漏洞复现





复现使用的版本为Foxit PDF Editor Pro 12.1.1.15289。默认安装后主程序路径为C:\Program Files\Foxit Software\Foxit PDF Editor\FoxitPDFEditor.exe。


在https://github.com/webraybtl/CVE-2023-27363上下载已公开的POC文件CVE-2023-27363.pdf,漏洞利用成功后,弹出JavaScript控制台对话框,同时在Startup目录释放了evil.hta文件,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_数据_05

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_后缀_06

evil.hta将在计算机重启后自动执行,HTA是HTML Application的缩写,将由本地的应用程序mshta.exe加载执行。evil.hta中包含了一段javascript脚本,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_javascript_07

evil.hta运行后,启动了notepad.exe和calc.exe程序,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_数据_08

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_javascript_09


漏洞分析





使用文本编辑器winhex打开CVE-2023-27363.pdf,搜索关键字“[+] CVE-2023-27363 PoC”,但是并未搜索到。仔细分析后发现,该pdf中有很多被压缩的流(stream)对象,无法看到明文数据,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_后缀_10

为方便分析,使用PdfStreamDumper工具打开CVE-2023-27363.pdf,该工具可以自动解压数据流,提取对象,javascript代码等,方便分析。该工具识别到了38个对象,再次搜索关键字“[+] CVE-2023-27363 PoC”,结果显示在编号为3的对象中找到了该字符串,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_javascript_11

可以清楚的看到,3号对象中包含了javascript代码,其功能是显示javascript控制台,然后向控制台输出“[+] CVE-2023-27363 PoC”字符串,再调用setTimeOut函数,该函数是延时500毫秒,执行另一段代码,最后再向控制台输出“[+] HTA payload written in the startup.”字符串。


在延时执行的另一段代码中,调用exportXFAData函数,其中传递的cPath参数,正是恶意文件释放路径,该函数是漏洞触发和利用的关键函数。根据Adobe Acrobat JavaScript Scripting Reference帮助文档,exportXFAData主要的功能是导出交互式表单(XML Forms Architecture,简称XFA)数据为XDP文件,其中cPath参数为导出文件的绝对路径,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_数据_12

Adobe Acrobat在实现该函数时只允许导出后缀为“.xdp”和“.xml”的文件,但Foxit PDF在实现exportXFAData函数功能时,只验证了文件夹路径是否存在,未校验cPath参数中文件后缀的合法性,导致可以将XFA数据导出为任意后缀的文件,XFA数据中又包含了可执行的javascript代码,将其导出为后缀为hta的文件,从而实现任意代码执行。验证文件夹路径是否存在的代码,如下图所示:

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现_后缀_13


参考链接






标签:文件,27363,对象,文档,代码执行,2023,PDF,Foxit
From: https://blog.51cto.com/u_15634773/6554549

相关文章

  • 集成板级摄像头行业市场调研及趋势分析报告2023-2029
    2023-2029全球集成板级摄像头行业调研及趋势分析报告2022年全球集成板级摄像头市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国集成板级摄像头市场占据全球约%的市场份额,为全......
  • 家用电器用电机行业市场调研及趋势分析报告2023-2029
    2023-2029全球家用电器用电机行业调研及趋势分析报告2022年全球家用电器用电机市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国家用电器用电机市场占据全球约%的市场份额,为全......
  • Hugging Face 入选 Time《时代周刊》2023 全球前 100 最具影响力的公司
    ......
  • 参与 2023 第二季度官方 Flutter 开发者调查
    Flutter3.10已经正式发布,每个季度一次的Flutter开发者调查也来啦!邀请社区的各位成员们填写:调研旨在了解你对Flutter的满意程度以及对其各个子系统的反馈。你的意见将对我们改进Flutter的功能和性能产生重要影响。在这次调研中,我们会继续通过对Flutter核心框架、Dart......
  • 20230626水题选做
    「数学基础」第6章期望问题单选错位题意单选把答案填在后面那道题了。假设所有题都正确,求答对题目的期望值。分析期望入门题。\(E(Ans)=\sumP[i]\)。那么显然有答对本题的期望为\(\dfrac{1}{\max\left(a\left[i+1\right],a\left[i\right]\right)}\)。代码#inc......
  • 记一次Nacos漏洞的复现 --> 身份认证绕过漏洞(QVD-2023-6271)
    前记端午前两天,遇到公司某客户的站点是Nacos,随后就是网上搜一波漏洞,搜到QVD-2023-6271,故做以下记录漏洞复现漏洞描述漏洞原理为开源服务管理平台Nacos在默认配置下未对token.secret.key进行修改,导致远程攻击者可以绕过密钥认证进入后台造成系统受控等后果。漏洞信息漏洞......
  • 官宣!2023云原生编程挑战赛正式启动
    随着越来越多的企业上云,企业的核心关注点转变为如何更好地利用云的能力,将产品快速推向市场,从而实现业务成功。但是,如果算力的呈现形式仍然是服务器这样的资源形态,它的使用门槛依然很高。让算力像电力一样的普及,云计算需要新的形态,就是Serverless。随着用好云成为关键,开发范式也......
  • 2023-06-25 uview组件Vtabs 垂直选项卡无法滑动位移
    前言:uni项目中导入uview的vtabs插件来做分页,奈何导入demo后发现无法实现滑动页面来自动选中左侧菜单。原因:大哥!请先看文档,文档里有写,设置chain为true即可左右联动!好吧,是我没留意。解决方案:设置vtabs属性chain为true,官网示例代码:<template><viewclass="content">......
  • 2023-06-25 Cannot find module 'uview-ui'
    前言:把uview2.0版本通过hx导入插件方式引入项目中,运行,遂报错:Cannotfindmodule'uview-ui'==》无法找到模块'uview-ui' 检查项目下载的包,'uview-ui'已存在,并存放于uni_modules文件夹中,引入代码为://main.js,注意要在use方法之后执行importuViewfrom"uview-ui";Vue.use(......
  • 2023-06-25 SassError: Undefined variable: "$u-bg-color".
    前言:项目引入uview,使用uview的image组件时,报错:20:55:49.932SassError:Undefinedvariable:"$u-bg-color".20:55:49.937online255ofD:\project\mall-uni\uni_modules\uview-ui\components\u-image\u-image.vue20:55:49.938>>$u-image-error......