PDF XSS

PDF XSS

漏洞测试:

下面,我们介绍如何把 JavaScript 嵌入到 PDF 文档之中。我使用的是迅捷 PDF 编辑器未注册版本

1、启动迅捷 PDF 编辑器打开一个 PDF 文件,或者使用“创建 PDF 文件”功能,通过将其他文档和资源转换为“可移植文档格式”来创建 PDF 文件。

img

2、单击左侧的“页面”标签,选择与之对应的页面缩略图,然后从选项下拉菜单中选择“页面属性”命令

img

选择“页面属性”命令

3、在“页面属性”对话框单击“动作”标签,再从“选择动作”下拉菜单中选择“运行 JavaScript”命令,然后单击【添加】按钮,弹出 JavaScript 编辑器对话框

img

填写 JavaScript 代码

4、在弹出的“JavaScript 编辑器”对话框中输入代码:
app.alert(‘XSS’);

单击【确定】按钮保存 PDF 文件。

这里需要注意的是:Adobe 支持自身的 JavaScript 对象模型,例如 alert(‘xss’)必须被 APP 对象调用,因此变成了 app.alert(‘xss’)。这意味着,利用 JavaScript 进行攻击时只能使用 Adobe 所支持的功能。

5、关闭软件,直接打开刚才保存的 PDF 文件,JavaScript 代码即被执行。经过测试最新版本的 360 浏览器和谷歌浏览器支持

img

img

现在,尝试把 PDF 文件嵌入到网页中并试运行。创建一个 HTML 文档,代码如下:

[复制代码](javascript:void(0)😉

<html>
<body>
<object
data="test.pdf" width="100%" heigh="100%"
type="application/pdf"></object>
</body>
</html>

[复制代码](javascript:void(0)😉

除了把 JavaScript 嵌入 PDF 文件中执行,还可以利用基于 DOM 的方法执行 PDF XSS。此类方法由 Stefano Di Paola 和 Giorgio Fedon 在第 23 届 CCC 安全会议中提出,大家可以参考论文 Adobe Acrobat。

Stefano Di Paola 把 PDF 中的 DOM XSS 称为 UXSS(Universal Cross-Site Scripting)。事实上,任何支持 PDF 文件的网站都可能存在这种漏洞。

修复方法

而作为网站管理员或开发者,可以选择强迫浏览器下载 PDF 文件,而不是提供在线浏览等,或修改 Web 服务器配置的 header 和相关属性。

可以使用第三方插件解析pdf,不用chrome自带的pdf解析就行,https://github.com/adobe-type-tools/cmap-resources

参考链接:

https://www.t00ls.net/thread-48480-1-1.html

https://blog.xss.lc/experience-sharing/71.html

本文由Bypass整理发布,转载请保留出处。 欢迎关注我的个人微信公众号:Bypass–,浏览更多精彩文章。

分类: 渗透测试

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值