js提取指定网站内容(9,849Pdf文件中嵌入Javasript脚本的利用方式分析)

优采云 发布时间: 2021-09-15 15:22

  js提取指定网站内容(9,849Pdf文件中嵌入Javasript脚本的利用方式分析)

  阅读:9849

  Pdf文件是一种广泛使用的文件格式,至今仍在开发2.0版本,其功能也不断丰富,许多鲜为人知的功能可能被用来进行恶意行为。本文将简要介绍如何在PDF文件中嵌入JavaScript脚本

  一、PDF中的JavaScript利用率

  Pdf是可移植文档格式的缩写。它是一种广泛应用于各种场合的文件格式。它是根据postscript语言修改的文件标准,并被ISO组织接受。目前已发展到2.0版本(iso32000)-2).目前广泛使用的是1.7版本,该版本的PDF功能已经相当丰富,可以显示3D模型、播放多媒体音频和视频、执行JavaScript脚本等功能

  Adobe reader的许多CVE漏洞都是通过PDF文件中的某些结构触发的,触发过程需要提前执行嵌入PDF文件中的JavaScript脚本。例如,CVE-2017-11254 Adobe Acrobat and reader中的addannot use after free漏洞通过调用addan来触发该漏洞JavaScript代码不起作用;cve-2018-4901 for PDF中的跟踪器结构中的ID字段的溢出漏洞也会通过文件中的JavaScript调用docid触发

  PDF文件中的JavaScript内容是一种非常有用且广泛使用的攻击手段

  然而,在PDF的JavaScript函数引用规范中,对PDF中可以引用的函数有严格的限制,可以执行的操作相对有限

  通过研究发现,目前针对攻击面的攻击主要分为以下三种方式:

  二、pdf中的JavaScript规范

  将JavaScript插入PDF的介绍主要在JavaScript_api_reference.PDF中介绍。在文档中介绍函数时,将通过四元组描述函数:

  

  第一列表示方法的启用版本以及是否仍在使用中,第二列表示方法引起的更改是否会影响文件,第三列表示方法的实现需要特殊设置,第四列表示方法的可用性

  PDF中的JavaScript根据影响范围分为以下几类:文件夹级脚本、文档级脚本、页面级脚本、域级脚本和批处理级脚本。所有类型的脚本都是事件驱动的,即在相应事件发生时响应和执行

  1、文件夹级脚本

  它收录可能影响acrobat的变量声明和函数定义。它通常用于添加影响acrobat的函数,例如菜单或菜单项,包括应用程序和用户

  这些脚本通常放在相应的文件夹中,并在acrobat启动时加载。它们通常与事件实体的应用程序初始化事件关联

  2、文档级脚本

  它收录变量声明和函数定义,这些变量声明和函数定义可能会影响给定的文件,并且不能在文件外部应用。此级别脚本可以通过acrobat创建并嵌入到PDF文件中。除此类型的脚本外,还有文档级别的操作脚本,其触发操作包括:关闭文件之前,请保存文件前、保存文件后、打印文件前和打印文件后

  3、页面级脚本

  打开或关闭页面时会执行此类型的脚本。打开事件是指页面完成绘制或随时查看新页面时发生的事件。关闭事件是指用户查看的页面不再是当前页面时发生的事件

  4、域级脚本

  域级别脚本绑定到acrobat中的表字段。当用户直接或间接与相应区域交互时,会触发相应的域事件,并且级别脚本存储在PDF文件中

  三、潜在可用内容

  在PDF阅读器支持的所有JavaScript函数中,以下函数在实际应用中仍然会给用户带来一些问题:

  app.launchURL()、app.media.getURLdata()、app.alert()、app.execDialog()、doc.getURL

  1、app.launchURL()函数用于访问远程URL

  此函数的四边形如下所示:

  

  该函数收录两个参数,curl(用于指定文件路径)和bnewframe(用于指定是否在新页面中显示文件)

  打开收录此功能的PDF文件时,将弹出一个窗口,提醒用户建立远程链接,然后使用默认浏览器打开远程连接

  2、app.media.getURLdata函数()打开URL指定的多媒体文件

  四边形如下:

  

  该函数收录两个参数,curl(用于指定文件的路径)和cmimetype(可选,用于指定文件的MIME类型)

  当打开收录此功能的PDF文件时,会弹出一个窗口提醒用户建立远程链接,然后根据版本和应用可能会有安全提示,用户需要手动选择信任,最后使用系统默认播放器播放URL指定的文件

  

  

  

  3、app.alert()功能是弹出一个警告对话框

  四元函数如下所示:

  

  该函数收录多个参数,即:cmsg(用于指定对话框内容)、Nicon(可选,用于指定对话框图标)、ntype(可选,用于指定按钮类型)、ctitle(可选,用于指定对话框标题)、odoc(可选,用于指定与警告相关的文档结构),ocheckbox(可选,在对话框中放置复选框,并指定相关内容、初始值和结束值)

  打开收录此函数的PDF文件时,会弹出相应的对话框,但标题处会出现提示:“警告:Javascript窗口”,如下所示:

  

  

  4、app.execDialog()函数为创建一个对话框

  其四边形如下:

  

  该功能通过设置相关参数,可以实现高度定制的对话框,如下图:

  

  但是,该对话框收录“JavaScript窗口”标题和红色警告文本

  5、doc.getURL函数是通过get方法获取指向文件的URL

  其四边形如下:

  

  此函数收录两个参数:curl(目标文件的地址)和bappend(如果为true,则将运行结果附加到当前文件;当文件在浏览器中运行时,建议为false)。函数运行后,仍然会出现安全提示,如下所示:

  

  但是,此函数的另一个功能是它可以运行本地文件。同时,为了防止执行任意文件,它还可以在注册表项中运行\local\u machine\software\policies\Adobe\Acrobat Reader\11.0\featurelockdown\cdefaultlanchattachmentperms受到限制。系统功能安全当用户试图执行不在限制范围内的文件时,也会调用xecute。在ablefiletype判断该文件是否为可执行文件且不受两个方面的限制后,将出现以下两个弹出窗口:

  

  

  最后打开目标文件:

  

  不同版本的程序不同,在阅读器X中,默认浏览器用于打开上面的图形,而在AcROCAX-Pro中,记事本直接用来打开它/P>

  

  参考链接:

  /

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线