freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

漏洞分析 | Atlassian Confluence模板注入代码执行漏洞(CVE-2023-22527)
塞讯验证 2024-01-31 18:28:06 238129

Atlassian Confluence是一款企业级协作和文档管理软件,由澳大利亚公司Atlassian开发和维护。它提供了一个集成的平台,使团队能够协作创建、共享和管理项目文档、知识库、会议记录等内容。

2024年1月16日,Atlassian 官方披露了CVE-2023-22527 Atlassian Confluence模板注入代码执行漏洞。攻击者可在无需登录的情况下构造恶意请求导致远程代码执行。建议尽快修复漏洞。

漏洞复现

1. 靶场环境搭建

使用以下docker-compose.yaml文件搭建靶场环境。

frc-ad066e822bf5b39229dc15256da505cd.png

启动容器后,访问http://your-ip,出现以下界面说明靶场成功。

frc-5f24f08ecb1782ab75fdd10ae9cc6736.png

2. 漏洞利用

使用BurpSuite发送以下数据包:

frc-692cc6ca34e92f40485e65a9cade9d6e.png

frc-2c24a5a155cbfb8b144a945eaf035882.png

根据响应头可以看到,Confluence成功回显了/etc/passwd文件信息。

漏洞分析

通过接口地址我们找到了该漏洞使用的模版

frc-9dcd9664ea923d2c07cb4486e7ed29e5.png

首先,需要说明的是这里使用的是Velocity模版引擎,Velocity 主要用于将模板与数据合并,生成文本输出。在 Web 开发中,Velocity 常用于生成动态网页、电子邮件模板、文档等。它支持在模板中嵌入变量、条件语句、循环结构等,使得模板能够根据给定的数据动态地生成内容。

在以上代码的首行中使用了$parameters.label去获取请求体中label参数的值,当我们传入label参数后,这行代码就变成了下面这样:


frc-97ab4ae8cef02824a56c8183470dde06.png

在这段代码中$stack.findValue的功能是通过变量名称去获取参数的值。

我们通过findValue调试来理解漏洞利用的过程,我们通过调试找到了该方法的位置:

frc-47d0ba790581f8f650825960f9d0861f.png

该方法执行时会进入下方findValue(String expr, boolean throwExceptionOnFailure)方法,并将传入的label参数交由this.tryFindValueWhenExpressionIsNotNull方法处理。

frc-5c264c1a6b121af4f9044ed9b86767f5.png

tryFindValueWhenExpressionIsNotNull把参数交给tryFindValue处理。

frc-a6e8072151002ae8402dd5ff617ac6b1.png

在tryFindValue中,调用getValueUsingOgnl进行处理。

frc-42b003c35aca486593fa793e042ac0f6.png

在getValueUsingOgnl中可以看到程序将payload直接传入到了this.ognlUtil.getValue方法中,该方法会将传入的参数进行unicode解码并执行。

frc-654a275d1591571defd3bd7fdf71ddec.png

一步步跟进后,最终执行payload的方法为compileAndExecute(),在下面断点调试中可发现,this.expressions.get()方法在解析payload时会将内部的unicode编码u0027及单引号等进行处理,使aaa前面的引号与u0027解码后的引号闭合,所以能够顺利执行后面注入的代码,导致攻击成功。

frc-01a2b76ecae8d84b680c21b0d7c40902.png

参考来源:

https://jira.atlassian.com/browse/CONFSERVER-93833

https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/

https://confluence.atlassian.com/pages/viewpage.action?pageId=1333335615

# 攻防演练 # 漏洞分析 # APT组织 # 安全验证 # Atlassian
本文为 塞讯验证 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
塞讯验证 LV.8
塞讯验证是国内领先的网络安全度量验证平台,率先提出利用真实自动化攻击剧本来持续验证安全防御有效性概念,旨在用安全验证技术来帮助客户实现365天持续评估自身网络和数据安全防御体系效果。塞讯创始团队均曾任职于世界顶尖网络安全公司,拥有业界首屈一指的安全分析和防御能力。两大研发团队分别位于上海和成都,致力于为客户打造最优秀的产品。我们在北京、上海、深圳、杭州均设有分支机构,服务可覆盖全国各个角落。​
  • 217 文章数
  • 21 关注者
3月 | 塞讯模拟攻击库更新汇总
2025-04-02
攻击剧本分析:APT38(Lazarus组织)针对 Atomic 钱包用户的攻击活动
2025-04-02
供应链攻击防御:所有安全框架都存在的三大盲点
2025-03-28
文章目录