前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Joomla!4.1.0 Zip Slip 文件覆盖/路径遍历

Joomla!4.1.0 Zip Slip 文件覆盖/路径遍历

作者头像
Khan安全团队
发布2022-04-21 11:44:21
1.1K0
发布2022-04-21 11:44:21
举报
文章被收录于专栏:Khan安全团队

[-] 软件链接:

http://www.joomla.org/

[-] 受影响的版本:

版本 4.1.0 和之前的版本。

版本 3.10.6 和之前的版本。

[-] 漏洞描述:

该漏洞位于

/libraries/vendor/joomla/archive/src/Tar.php script. Specifically, into the Joomla\Archive\Tar::extract() method:

代码语言:javascript
复制
113.			$this->getTarInfo($this->data);
114.
115.			for ($i = 0, $n = \count($this->metadata); $i < $n; $i++)
116.			{
117.				$type = strtolower($this->metadata[$i]['type']);
118.
119.				if ($type == 'file' || $type == 'unix file')
120.				{
121.					$buffer = $this->metadata[$i]['data'];
122.					$path   = Path::clean($destination . '/' . 
$this->metadata[$i]['name']);
123.
124.					// Make sure the destination folder exists
125.					if (!Folder::create(\dirname($path)))
126.					{
127.						throw new \RuntimeException('Unable to create destination 
folder ' . \dirname($path));
128.					}
129.
130.					if (!File::write($path, $buffer))
131.					{
132.						throw new \RuntimeException('Unable to write entry to file ' . 
$path);
133.					}
134.				}
135.			}

漏洞的存在是因为上述代码使用

Tar 存档中的文件名(在第 122 行创建的 $path 变量)

通过在第 130 行使用 File::write() 写入提取的文件,没有正确

验证目标路径。这可以被利用来执行 Zip

Slip(或路径遍历)攻击和写入/覆盖任意文件,

可能导致执行任意 PHP 代码或其他

危险影响。在 Joomla!核心,成功利用此

漏洞需要管理员权限。但是,

可能有第三方组件使用

Joomla\Archive\Archive::extract() 方法。在这种情况下,这也

可能被未经身份验证的攻击者利用,具体取决于

上下文。

[-] 解决方案:

升级到版本 3.10.7、4.1.1 或更高版本。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档