Server Side XSS (Dynamic PDF)

chevron-right从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)arrow-up-righthashtag

支持 HackTricks 的其他方式:

服务器端 XSS(动态 PDF)

如果一个网页使用用户控制的输入创建 PDF,您可以尝试欺骗创建 PDF 的机器人执行任意的 JS 代码。 因此,如果PDF 创建机器人发现某种HTML 标签,它将解释它们,您可以滥用这种行为来引起服务器 XSS

请注意,<script></script> 标签并不总是有效,因此您需要一种不同的方法来执行 JS(例如,滥用 <img)。 此外,请注意,在常规利用中,您将能够查看/下载创建的 PDF,因此您将能够查看您通过 JS 编写的所有内容(例如使用 document.write())。但是,如果您无法看到创建的 PDF,您可能需要通过向您发出网络请求来提取信息(盲目)。

流行的 PDF 生成工具

  • wkhtmltopdf 以其将 HTML 和 CSS 转换为 PDF 文档的能力而闻名,利用 WebKit 渲染引擎。这个工具作为一个开源命令行实用程序可用,适用于各种应用程序。

  • TCPDF 在 PHP 生态系统中提供了一个强大的 PDF 生成解决方案。它能够处理图像、图形和加密,展示了其为创建复杂文档提供的多功能性。

  • 对于在 Node.js 环境中工作的人,PDFKit 提供了一个可行的选择。它使得可以直接从 HTML 和 CSS 生成 PDF 文档,为 Web 内容和可打印格式之间提供了桥梁。

  • Java 开发人员可能更喜欢 iText,这是一个库,不仅有助于 PDF 创建,还支持高级功能,如数字签名和表单填充。其全面的功能集使其适用于生成安全和交互式文档。

  • FPDF 是另一个 PHP 库,以其简单性和易用性而著称。它专为寻求简单方法进行 PDF 生成的开发人员设计,无需复杂功能。

攻击载荷

发现

SVG

先前的任何负载或以下负载都可以用在这个SVG负载中。一个访问Burpcollab子域的iframe和另一个访问元数据端点的iframe被放置为示例。

您可以在https://github.com/allanlw/svg-cheatsheetarrow-up-right中找到许多其他SVG有效负载

路径泄露

加载外部脚本

利用这个漏洞的最佳方法是滥用漏洞,使机器人加载您本地控制的脚本。然后,您将能够在本地更改有效负载,并使机器人每次都使用相同的代码加载它。

读取本地文件 / SSRF

circle-exclamation

机器人延迟

端口扫描

这个漏洞可以很容易地转变成SSRF(因为你可以让脚本加载外部资源)。所以尝试利用它(读取一些元数据?)。

附件:PD4ML

有一些HTML转PDF引擎允许为PDF指定附件,比如PD4ML。你可以滥用这个功能将任何本地文件附加到PDF中。 要打开附件,我用Firefox打开文件,双击纸夹符号存储附件为一个新文件。 使用Burp捕获PDF响应也应该在PDF中以明文显示附件

参考资料

chevron-right从零开始学习AWS黑客技术,成为英雄 htARTE(HackTricks AWS Red Team Expert)arrow-up-righthashtag

支持HackTricks的其他方式:

最后更新于