[BSidesCF 2019]SVGMagic(xxe)
SVG是一种用XML定义的语言,SVG图形是可交互的和动态的,可以在SVG文件中嵌入动画元素或通过脚本来定义动画。
也就是说SVG是个XML,我们就能想到xxe
详解:https://www.freebuf.com/vuls/175451.html
我们知道,XML被设计用于传输和存储数据,然后这个漏洞就是利用了,应用程序在解析XML输入时,没有禁止外部实体的加载。
就拿下面的这个来说
1 | <!ENTITY file SYSTEM "file:///proc/self/cwd/flag.txt" > |
这个就是外部实体,加载了flag.txt,然后输出,也就是:应该是实体引用,把加载的东西放出来
1 | <svg height="100" width="1000"> |
payload
1 | <?xml version="1.0" encoding="UTF-8"?> |
得到flag