原文链接:实战|通过恶意 pdf 执行 xss 漏洞
下面,我们介绍如何把 JavaScript 嵌入到 PDF 文档之中。
我使用的是迅捷 PDF 编辑器未注册版本
1、启动迅捷 PDF 编辑器打开一个 PDF 文件,或者使用“创建 PDF 文件”功能,通过将其他文档和资源转换为“可移植文档格式”来创建 PDF 文件。
除了把 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 漏洞修复结果浏览器针对TXT/pdf等文件一般是直接打开,从而导致恶意的文件会被浏览器直接执行,因此解决方法就是告诉浏览器哪些类型的文件需要下载而不是直接打开.我们可以在nginx解析容器中通过反向代理可以直接过滤访问的url在指定的访问中添加header。
location /{
if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){