渗透测试-pdf文件上传-XSS

前言pdf是portable document format的缩写,是目前广泛应用于各种场合的文件格式,其是由Adobe公司根据Postscript语言修改后提出的文件标准,并且被ISO组织接受,目前已经发展到2.0版本(ISO32000-2)。目前广泛使用的是1.7版本,该版本pdf功能已经相当丰富,可以显示3D模型,播放多媒体音视频,执行Javascript脚本等功能。PDF中的JavaScript利用Pdf文件是应用广泛的一种文件格式,很多针对Adobe阅读器的CVE漏洞都是通过pdf
摘要由CSDN通过智能技术生成

前言

pdf是portable document format的缩写,是目前广泛应用于各种场合的文件格式,其是由Adobe公司根据Postscript语言修改后提出的文件标准,并且被ISO组织接受,目前已经发展到2.0版本(ISO32000-2)。

目前广泛使用的是1.7版本,该版本pdf功能已经相当丰富,可以显示3D模型,播放多媒体音视频,执行Javascript脚本等功能。

PDF中的JavaScript利用

Pdf文件是应用广泛的一种文件格式,很多针对Adobe阅读器的CVE漏洞都是通过pdf文件中的某些结构触发,触发过程都需要执行事先嵌入在pdf文件中的Javascript脚本。例如CVE-2017-11254 Adobe Acrobat 和Reader中addAnnot Use After Free漏洞,就是通过调用Javascript代码调用addAnnot函数从而触发漏洞;以及CVE-2018-4901 针对pdf中Trailer结构里的ID字段的溢出漏洞,也是需要在文件中通过Javascript调用docID来进行触发。

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

  • 通过Javascript调用pdf中的模块进行攻击;

  • 通过Javascript调用阅读器中提供的Javascript相关功能,进行攻击;

  • 其他未知形式的攻击。

PDF中的JavaScript规范

在PDF中插入JavaScript的相关介绍信息可以在Javascript_api_reference.pdf中看到文档下载

文档开头函数介绍时,使用四元数组进行函数介绍,如图:

图片

我们来看看这四元数组各自所代表的含义:

  • 第一列指的是该方法的启用版本以及是否还在使用

  • 第二列指的是该方法引起的变化是否会影响文件

  • 第三列指的是该方法执行需要特殊设置

  • 第四列指的是该方法的可用性

PDF中的JavaScript影响范围

Pdf中的Javascript按照影响范围分为以下几种:文件夹级脚本、文档级脚本、页面级脚本、域级脚本以及批处理级脚本。所有类型的脚本都是事件驱动的,即当发生相应事件时,才会响应执行。

文件夹级脚本

可以影响Acrobat的变量声明和函数定义。一般用于增加菜单或者菜单项等针对Acrobat有影响的函数,包括两种:app和user。此类脚本一般是放到相应文件夹中,一般在Acrobat启动时载入,一般与event实体的应用初始化事件联系。

文档级脚本

可以影响给定文件的变量声明和函数定义,在文件之外不能应用。可以通过Acrobat创建该级别脚本嵌入pdf文件中。除该类型脚本外,还有文档级动作脚本,其触发动作包括:文件关闭前,文件保存前,文件保存后,文件打印前和文件打印后。

页面级脚本

该类型脚本在一页打开

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值