0x00 前言
Laravel 是一个后端框架,提供了构建现代 Web 应用所需的所有功能,例如路由、验证、缓存、队列、文件存储等等。
Livewire 是一个全栈框架,专为 Laravel 开发,它允许开发者使用 PHP 而不是 JavaScript 来构建实时的用户界面。
0x01 漏洞描述
由于Laravel Livewire上传文件时根据MIME类型猜测文件扩展名,而不验证文件名中实际的文件扩展名,攻击者可以上传具有MIME类型(如:image/png)和 “.php”文件扩展名的文件来绕过验证,满足一定条件可以进行远程代码执行。
0x02 CVE编号
CVE-2024-47823
0x03 影响版本
Livewire>=2.12.7
Livewire>=3.5.2
0x04 漏洞详情
https://github.com/livewire/livewire/security/advisories/GHSA-f3cx-396f-7jqp
问题代码:
class SomeComponent extends Component
{
use WithFileUploads;
#[Validate('image|extensions:png')]
public $file;
public function save()
{
$this->validate();
$this->file->storeAs(
path: 'images',
name: $this->file->getClientOriginalName(),
options: ['disk' => 'public'],
);
}
}
0x05 参考链接
https://github.com/livewire/livewire/security/advisories/GHSA-f3cx-396f-7jqp
原文始发于微信公众号(信安百科):CVE-2024-47823|Laravel Livewire文件上传导致远程代码执行漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论