Confluence 組件安全概覽

2021-12-18 白帽100安全攻防實驗室

組件概述



1.   關鍵詞

信息共享、協同編輯、企業內網

2.概述

Confluence是一個企業級的Wiki,它是一個知識管理的工具,通過它可以實現團隊成員之間的協作和知識共享,Confluence使用簡單,但它強大的編輯和站點管理特徵能夠幫助團隊成員之間共享信息,文檔協作,集體討論。

可用於企業、部門、團隊內部進行信息共享和協同編輯。

以上引用於:https://www.codenong.com/cs106243330/

3.使用範圍及行業分布

lConfluence是全球流行的Wiki系統,業務涵蓋100多個國家或地區。IBM、SAP等之知名企業都使用Confluence構建企業Wiki並向公眾開放。

lConfluence被用於廣泛地用於項目團隊,開發團隊,市場銷售團隊。

l全球共有78158個Confluence開放服務,美國最多,有23002個服務,德國第二,有14385個開放服務,中國第三,有7281個服務,澳大利亞第四,有7959個服務,愛爾蘭第五,有2893個服務。全國的開放的Confluence服務中,浙江最多,有3040個服務,北京第二,有1713個服務,上海第三,有532個服務,廣東第四,有525個服務。

lShodan :Confluence fofa:app="Confluence"  Zoomeye:app:"Confluence"

4.重點產品特性

一.環境搭建、動態調試



1.下載基礎ubuntu鏡像

由於官方ubuntu沒有一些基本工具,自己commit了一個

docker pull skaydocker/lamp:latest

2.啟動 並進入docker 容器進行配置

docker run --name confluence6.13.2 -it -p 8090:8090 -p 10010:10010 skaydocker/lamp:latest /bin/bashker run -p 8090:8090 -p 10010:10010 -it skaydocker/lamp:latest /bin/bash

3.將confluence導入docker鏡像

docker cp /root/confluence/atlassian-confluence-6.13.2.tar.gz confluence6.13.2:/opt/tar zxf atlassian-confluence-6.13.0.tar.gzcd atlassian-confluence-6.13.0vim ./confluence/WEB-INF/classes/confluence-init.properties #設置confluence的home目錄,這裡我設置為#confluence.home=/home/cqq/confluence$ vi ./conf/server.xml

去掉注釋

修改啟動參數 ./bin/setup.sh

CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=10010 ${CATALINA_OPTS}"  # for debug

4.安裝jdk

JAVA_HOME=/usr/java/jdk1.8.0_74JRE_HOME=$JAVA_HOME/jreJAVA_BIN=$JAVA_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME PATH CLASSPATH

5.啟動

./bin/start-confluence.sh

再啟動confluence ./start-confluence.sh

開始安裝confluence

參考vulhub步驟  https://github.com/vulhub/vulhub/tree/master/confluence/CVE-2019-3396

6.配置idea

7.將要調試的jar包導入idea

docker cp confluence6.13.2:/opt/atlassian-confluence-6.13.2/confluence/WEB-INF/lib  ~/confluence/libdocker cp confluence6.13.2:/opt/atlassian-confluence-6.13.2/confluence/WEB-INF/atlassian-bundled-plugins  ~/confluence/lib1docker cp confluence6.13.2:/opt/atlassian-confluence-6.13.2/lib

 



8.下斷點調試

二.漏洞相關


1.漏洞概覽

1.1漏洞列表

注: 只列出高危漏洞  其它漏洞詳情見 此處放連結

https://confluence.atlassian.com/doc/confluence-security-advisory-2019-03-20-966660264.html

1.2.漏洞分布與關聯

A.分布

默認安裝的一些插件存在安全漏洞

B.關聯

3394 3395 3396 均是一個地方

1.3.漏洞過去、現在、未來

過去是插件存在漏洞 2020年還未爆出高危漏洞 由於使用量較大,未來還會是安全研究人員重點挖掘的目標,肯定還會出漏洞,應該還是插件問題

2.復現及分析

1.CVE-2020-0000

A.復現

1)任意文件讀取

2)結合遠程文件包含實現命令執行

B.分析

首先漏洞公告信息獲得了Widget Connector組件名稱,確認漏洞點,

然後在lib裡面尋找相應代碼位置com\atlassian\confluence\extra\widgetconnector,根據漏洞點來精確的diff,

關鍵函數

this.sanitizeFields = Collections.unmodifiableList(Arrays.asList(VelocityRenderService.TEMPLATE_PARAM));

而TEMPLATE_PARAM的值就是_template,所以這個補丁就是過濾了外部傳入的_template參數,TEMPLATE_PARAM就是模板文件的路徑

以上參考於https://paper.seebug.org/884/

模板路徑一般是寫死,若出現例外,調用了可控的模板,造成模板注入

然後,去應用裡找代碼對應的功能點

插入參數開始debug

我這裡就直接用poc來debug了

POST /rest/tinymce/1/macro/preview HTTP/1.1Host: 192.168.33.128:8090Connection: closeUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3670.0 Safari/537.36Referer: http://192.168.33.128:8090/pages/resumedraft.action?draftId=786457&draftShareId=056b55bc-fc4a-487b-b1e1-8f673f280c23&Content-Type: application/json; charset=utf-8Content-Length: 170{"contentId":"786457","macro":{"name":"widget","body":"","params":{"url":"https://www.viddler.com/v/23464dc5","width":"1000","height":"1000","_template":"../web.xml"}}}

我們第一個斷點下到這裡render:31, DefaultVelocityRenderService  可以看到_template取出來賦值給template,其他傳遞進來的參數取出來經過判斷之後放入到contextMap,調用getRenderedTemplate函數,也就是調用VelocityUtils.getRenderedTemplate。

跟進this.getRenderedTemplate

跟著作者跟斷電到loadResource:322, ConfigurableResourceManager 這裡我我發現只有_templete是url的時候才會停到這裡,../web.xml並不會

這裡有四個ResourceLoaders 用來取模板,因為Fresourcetype是1 所以我們直接跟進org.apache.velocity.runtime.resource.loader.FileResourceLoader  getResourceStream:132, FileResourceLoader  getResourceStream:132, FileResourceLoader  FileResourceLoader會對用戶傳入的模板路徑使用normalizePath函數進行校驗

跟進去 過濾了/../ 跳目錄失敗

我們再回到getResourceStream:152, FileResourceLoader  停到inputStream = this.findTemplate(path, template); 這裡會憑藉一個固定的path,這個是Confluence的安裝路徑

所以我們可以督導Confluence目錄下面的文件了,但是無法讀取安裝目錄以外的文件,但是可以跳一層,../還是可以用的, 我們繼續跟著作者走到getResourceStream:119, ClasspathResourceLoader 的ClassUtils.getResourceAsStream

跟進去停到getResourceAsStream:1087, WebappClassLoaderBase 這裡也用了normallize多路徑過濾了

我懶 就不踩坑了  圖片連結https://paper.seebug.org/884/

跟著大佬直接i斷到/org/apache/catalina/loader/WebappClassLoaderBase.class的getResourceAsStream

然後停到getResourceAsStream:1094, WebappClassLoaderBase  這裡很關鍵,URL url = super.findResource(name); 會獲取到url對象哦,可以遠程加載模板啦

最終獲取到數據給Velocity渲染。

跟著大佬一步步走下來 牛批,膜。

2.CVE-2019-3395

同3396  都可以file http協議之類的了 ssrf還不是小意思

3.CVE-2019-3394

Well 同上~

4.CVE-2019-3398

https://xz.aliyun.com/t/4854

3.漏洞信息跟進

官方公告

https://confluence.atlassian.com/doc/confluence-security-advisory-2019-03-20-966660264.html

4.廠商防護及繞過思路

漏洞pay都是url get post參數存在問題 單純正則比較難以防禦,繞過方式較多

5.漏洞自動化利用相關

反序列化漏洞exp公開,且可利用性高

簡單burp發包即可

三.個人思考



主要參考連結是seebug一篇文章,從官方預警給出到自己構造poc,思考路徑很值得借鑑,膜~

四.參考連結



https://note.qidong.name/2017/08/nexus-repository-oss/

https://github.com/sonatype/nexus-public/

相關焦點

  • Apache Solr 組件安全概覽
    (5) Analyzer / tokenizerLucene以令牌的形式識別數據。Apache Solr分析內容,將其劃分為令牌,並將這些令牌傳遞給Lucene。Apache Solr中的分析器檢查欄位文本並生成令牌流。標記生成器將分析器準備的標記流分解為標記。
  • 導航組件概覽 | MAD Skills
    今天為大家發布本系列文章中的第一篇: 導航 (Navigation) 組件概覽。本文會簡要概述導航組件,包括如何創建一個帶有導航能力的、已啟用導航的 UI 中有關包含層級的細節的新應用,以及對於一些主要 API 和導航組件工作原理的解釋。
  • Confluence-團隊協作
    all on `confluence`.* to 『admin』@』%』 identified by 『admin』;————————-    安裝破解confluence     ———————1.下載bin文件wget https://www.atlassian.com/software/confluence/
  • Confluence快速部署
    status:              enabledPolicy deny_unknown status:     allowedMax kernel policy version:      314)準備java1.8環境參考如下連結:centos7下安裝Java8運行環境 - 潮起潮落中看星辰大海 - 博客園 (cnblogs.com)5)下載下載confluence6.7.1
  • 【技術原創】Confluence利用指南
    https://confluence.atlassian.com/doc/installing-confluence-on-linux-143556824.html本文以Centos7搭建Confluence為例進行介紹。
  • Confluence OGNL注入(CVE-2021-26084)漏洞淺析
    此處引用的變量通過struts框架的ognl引用了當前訪問action的屬性值,可以通過GET/ POST 請求參數賦值,因此我們可以直接通過請求參數控制velocity模板中的參數queryString。
  • Confluence任意文件讀取漏洞復現
    default character set utf8 collate utf8_bin; # 創建資料庫 grant all on confluence.* to 'confluence'@'%' identified by 'confluence123'; # 添加 confluence 用戶 grant all on confluence.* to confluence
  • Confluence WiKi,在國產飛騰CPU的虛擬機上裝起來了!
    參考安裝版本的默認路徑,將安裝目錄設置為/opt/atlassian/confluence,將數據存儲路徑設置為/var/atlassian/application-data/confluence。mkdir -p /opt/atlassian/confluencemkdir -p /var/data/confluence/解壓文件:tar -xvf atlassian-confluence-6.8.5.tar.gz修改confluence-init.properties配置文件:vi /opt/atlassian
  • Atlassian Confluence遠程代碼執行漏洞風險提示
    處置建議:升級Atlassian Confluence至安全版本臨時緩解措施:如果無法升級可執行官方提供的臨時緩解腳本。Linux:https://confluence.atlassian.com/doc/files/1077906215/1077916296/2/1629936383093/cve-2021-26084-update.sh執行前需要關閉Confluence,並修改cve-2021-26084-update.sh文件並設置INSTALLATION_DIRECTORY
  • 【流程研發】虛擬機伺服器搭建WIKI文檔(docker+confluence)
    docker run -d --name confluence -p 8090:8090 --link postgresdb:db --user root:root cptactionhank/atlassian-confluence
  • 玩轉Confluence插件開發-使用信息橫幅顯示頁面相關信息(13)
    1.創建插件框架打開終端並導航到之前創建好的工作目錄confluence-plugin-tutorial。atlas-create-confluence-plugin根據提示輸入對應的groupId、artifactId、version和package信息,並輸入Y以確認。
  • 基於Docker安裝、部署、破解Confluence 6.6圖文教程
    FROM atlassian/confluence-serverMAINTAINER 周立<eacdy0000@126.com># 傳入破解補丁ADD crack/atlassian-extras-decoder-v2-3.2.jar ${CONFLUENCE_INSTALL_DIR}/confluence/WEB-INF
  • 通報:Confluence遠程代碼執行漏洞(CVE-2021-26084)被黑產大規模利用
    騰訊Web應用防火牆(WAF)已支持防護confluence遠程代碼執行漏洞利用。非雲企業安全防護騰訊T-Sec高級威脅檢測系統(騰訊御界)基於網絡流量進行威脅檢測,已支持:1)本次威脅相關的IOCs已支持識別檢測;2)已支持檢測利用confluence遠程代碼執行漏洞發起的攻擊。
  • webhook技術——Confluence文檔連結Rocket.Chat聊天室
    比如公司現在有一個Confluence文檔庫(搭建參考文章《【流程研發】虛擬機伺服器搭建WIKI文檔(docker+confluence)》),有一個區域網聊天工具Rocket.Chat(搭建參考文章《企業級聊天軟體Rocket.Chat伺服器搭建》),現在要實現的是一旦文檔庫被員工更新,Rocket.Chat可以收到聊天信息提醒這麼個功能,有點AI智能的意思吧。
  • 實戰之Confluence SSRF及遠程代碼執行漏洞(CVE-2019-3395\CVE-2019-3396)
    前言2019年3月20日Atlassian官方發布了SSRF漏洞(CVE-2019-3395)及遠程代碼執行漏洞(CVE-2019-3396)的安全通告
  • 【DB寶47】企業知識分享+團隊協作神器之Confluence
    一、Confluence簡介confluence是一個專業的企業知識管理與協同軟體,可以用於構建企業wiki。通過它可以實現團隊成員之間的協作和知識共享。關鍵詞:信息共享、協同編輯以下幾個基本概念需要了解一下:空間(Space)空間是頁面的組合,可以創建不限數量的空間。
  • 【漏洞分析】Confluence Ognl表達式注入漏洞 (CVE-2021-26084)
    靶場環境選擇:atlassian-confluence-7.12.3版本根據官方發布的補丁文件我們可以看到共修改了5個文件,這5個文件均存在漏洞,我們選擇其中不需要登錄就可以利用漏洞的pages/doenterpagevariables.action頁面進行復現分析。
  • Vitis統一軟體平臺概覽
    它的相關組件之間的關係又是什麼?本文便是筆者在被繞的暈頭轉向之際,嘗試著去對 Vitis 組件進行部分總結與概述的情況下所寫下的。奈於精力與個人理解的有限性,難免會有疏漏之處,還希望諸位看官能不吝賜教。2 - Vitis 平臺概覽這裡先將個人總結的 Vitis 平臺中各個組件之間的關係圖放出,方便查看。
  • Confluence 文件讀取漏洞(CVE-2019-3394)分析
    看下描述,Confluence Server 和 Data Center 在頁面導出功能中存在本地文件洩露漏洞:具有「添加頁面」空間權限的遠程攻擊者,能夠讀取 <install-directory>/confluence
  • Windows​電腦安全軟體
    界面概覽Avast Free Antivirus排名第五界面概覽取消安裝捆綁的瀏覽器、自定義組件需要聯網安裝對於喜歡用360產品的朋友推薦360 Total Security相比於臃腫的360安全衛士,360 Total Security會更簡潔些界面概覽