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

项目介绍

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。

参考链接

相关推荐
lijun_xiao20092 小时前
Apache Hadoop-学习笔记1
hadoop·学习·apache
SelectDB技术团队14 小时前
Apache Doris 自动分区:如何应对分布式环境下的复杂并发挑战|Deep Dive
分布式·apache
StarRocks_labs1 天前
StarRocks 4.0:让 Apache Iceberg 数据真正 Query-Ready
apache·数据湖·shuffle·starrocks 4.0·query-ready
武子康1 天前
大数据-154 Apache Druid 架构与组件职责全解析 版本架构:Coordinator/Overlord/Historical 实战
大数据·后端·apache
老罗-Mason2 天前
Apache Flink运行环境搭建
python·flink·apache
HashData酷克数据2 天前
Apache Cloudberry 孵化报告(202508-202510)
apache
迦蓝叶3 天前
Apache Jena:利用 SPARQL 查询与推理机深度挖掘知识图谱
java·数据挖掘·apache·知识图谱·查询·知识挖掘·推理机
JosieBook3 天前
【数据库】Apache IoTDB数据库在大数据场景下的时序数据模型与建模方案
数据库·apache·iotdb
SeaTunnel4 天前
结项报告完整版 | Apache SeaTunnel支持metalake开发
apache
迦蓝叶4 天前
Apache Jena 知识图谱持久化:选择适合你的存储方案
人工智能·开源·apache·知识图谱·持久化·存储·jena