Apache OFBiz 17.12.03及以前版本XMLRPC反序列漏洞详解与修复方法
项目介绍

Apache OFBiz是一个非常著名的电子商务平台,也是一个非常著名的开源项目,提供了构建大中型企业级、跨平台、跨数据库、跨应用服务器的基于Web的多层系统的能力最新的 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“触摸/tmp/成功”| 64 位 | 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条件不成立,被成功绕过。
但绕过该补丁后,仍然需要登录才能利用,这就涉及到另一个身份验证绕过漏洞。验证码如下。当代码返回成功以外的结果时,将返回登录页面。
在checklogin函数中,有以下逻辑。只要不满足以下任何一个条件,就会返回成功。
由于用户名和密码可以由用户控制,因此登录函数中有如下逻辑
因此,构造一个URL,格式为/xxxx/?USERNAME=&PASSWORD=&requirePasswordChange=Y,使认证函数返回success,从而绕过认证。结合上面的分析,可以实现preauth-rce。
参考链接
结尾
过去的亮点
七巧班说道:
作为国内专注于开源组件管理和威胁情报服务的创新科技公司,棱镜多彩全新推出七巧板平台,免费提供一站式开源安全合规测试和开源评估服务。该平台专注于国内最主流的开源软件的开发。帮助开源行业的安全和合规性的方向。欲了解更多信息,请访问: