Atlassian Jira是澳大利亞Atlassian公司的一套缺陷跟蹤管理系統。該系統主要用於對工做中各種問題、缺陷進行跟蹤管理。html
Atlassian Jira Server和Jira Data Center存在服務端模板注入漏洞,成功利用此漏洞的攻擊者可對運行受影響版本的Jira Server或Jira Data Center的服務器執行任意命令,從而獲取服務器權限,嚴重危害網絡資產。java
CVE-2019-11581linux
高危git
AtlassianJira 4.4.x
AtlassianJira 5.x.x
AtlassianJira 6.x.x
AtlassianJira 7.0.xgithub
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.3shell
第一種,未受權代碼執行利用條件: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
若是出現如下運行版本號則爲存在漏洞。
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,以下,注意執行命令添加帳號的帳戶名
編輯設置
關閉聯繫網站管理員表單功能
1.升級到不受漏洞影響的版本。
2.對http://ip:port/secure/admin/SendBulkMail!default.jspa限制訪問的源ip