Apache OfBiz 反序列化命令执行漏洞(CVE-2023-49070)

news/2024/6/18 2:14:59 标签: apache

项目介绍

Apache OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。

项目地址

漏洞概述

在Apache OFBiz 17.12.03版本及以前存在一处XMLRPC导致的反序列漏洞,官方于后续的版本中对相关接口进行加固修复漏洞,但修复方法存在绕过问题(CVE-2023-49070),攻击者仍然可以利用反序列化漏洞在目标服务器中执行任意命令。

影响的版本

Apache OFBiz < 18.12.10

环境搭建

下载完成vulhub后,进入CVE-2023-49070目录,直接执行docker compose up -d 命令即可。

漏洞复现

1、使用CommonsBeanutils1链构造恶意paylod

java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/success" | base64 | tr -d "\n"

2、使用如下poc

3、命令成功执行

漏洞分析

此次漏洞产生的根源是xmlrpc组件的反序列化漏洞,但是由于xmlrpc已经不在更新维护,因此Apache OFBiz项目组决定删除相关代码,已彻底修复该问题,也删除了之前的补丁代码。

实际上CVE-2023-49070是历史漏洞CVE-2020-9496的绕过,CVE-2020-9496的修复补丁如下,仅是在Filter中对存在漏洞的uri和内容进行校验。

但是该补丁可以被绕过,原因是OFBiz采用了tomcat中间件,而tomcat支持/control/xmlrpc;/格式的uri,因此if条件不成立,成功绕过。

但是绕过补丁后,仍然需要登录才可以利用,这里又涉及到了一个认证绕过漏洞。认证代码如下,当下来代码返回结果不为success时,将返回登录页面

在checklogin函数中,存在如下逻辑,只要不满足任何下列条件,将返回success

由于username、password可以被用户控制,在login函数中又存在如下逻辑

因此构造/xxxx/?USERNAME=&PASSWORD=&requirePasswordChange=Y格式的url让认证函数返回success,即可绕过认证。结合上述分析,即可实现preauth-rce。

参考链接

  • https://github.com/vulhub/vulhub/blob/master/ofbiz/CVE-2023-49070/README.zh-cn.md
  • https://issues.apache.org/jira/browse/OFBIZ-12812
  • https://github.com/apache/ofbiz-framework/commit/abe2e4399e

http://www.niftyadmin.cn/n/5260455.html

相关文章

UDP分片与丢包,UDP真的比TCP高效吗?

一、UDP 报文格式 每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分。报头由 4 个 16 位长&#xff08;2 字节&#xff09;字段组成&#xff0c;分别说明该报文的源端口、目的端口、报文长度和校验值。 UDP 报文格式如图所示。 UDP 报文中每个字段的含义如下&#xff1a; 源端…

STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

背景&#xff1a; 有一个项目用到STM32F091芯片去读取 AT24C512C-SSHD EEPROM 芯片&#xff0c;我直接移植了之前项目的IIC库&#xff0c;结果程序运行后&#xff0c;读不出EEPROM里面的数据。 摘要&#xff1a; 本文主要介绍一个基于STM32F091芯片和AT24C512C-SSHD EEPROM芯片…

用23种设计模式打造一个cocos creator的游戏框架----(十五)策略模式

1、模式标准 模式名称&#xff1a;策略模式 模式分类&#xff1a;行为型 模式意图&#xff1a;定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化 结构图&#xff1a; 适用于&#xff1…

【密码学】RSA破解方法汇总(PYTHON实现)

源自于密码学的一次大作业~ RSA破解 &#x1f4a1; Alice使用的RSA密码体制&#xff0c;有以下事项需要说明&#xff1a; 1&#xff09; 模数&#x1d441;&#x1d45d;&#x1d45e;规模为1024比特&#xff0c;其中&#x1d45d;&#xff0c;&#x1d45e;为素数&#xff1…

报名众筹小程序系统源码:在线投票+众筹模式+完整的安装部署教程

随着互联网的普及和发展&#xff0c;众筹作为一种新型的融资方式&#xff0c;逐渐受到越来越多人的关注和认可。众筹不仅可以帮助个人或企业筹集资金&#xff0c;还可以促进创意的传播和实现。因此&#xff0c;开发一款具有在线投票和众筹功能的微信小程序&#xff0c;对于满足…

基于pytorch 的RNN实现文本分类

首先&#xff0c;需要导入必要的库&#xff0c;包括torch、torchtext、numpy等&#xff1a; import torch import torch.nn as nn import torch.optim as optim import numpy as np from torchtext.datasets import AG_NEWS from torchtext.data.utils import get_tokenizer f…

EFK 部署(一次成功)并且验证测试

1、创建 Elasticsearch 集群 创建对应namespace 在创建 Elasticsearch 集群之前,我们先创建一个命名空间,我们将在其中安装所有日志相关的资源对象。 新建一个namespace-logging.yaml 文件 cat >>namespace-logging.yml<<-EOFapiVersion: v1 kind: Namespace …

多彩m618鼠标使用体验

第二次使用立式鼠标&#xff0c;据说这一款很经典&#xff0c;价格也不贵&#xff0c;买回来试试。 用了几天&#xff0c;手感比前一个鼠标差了好多&#xff0c;用了好几天稍微能接受那么一点了&#xff0c;勉强用着吧&#xff0c;多一个体验。 我一直以为立式鼠标有一个成熟…