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