导语:Adobe ColdFusion,是一个动态Web服务器,2020年3月18日,Adobe官方发布针对Adobe Coldfusion的安全更新补丁,编号为APSB20-16。补丁中包含Adobe ColdFusion 任意文件读取和任意文件包含漏洞,CVE编号分别为CVE-2020-3761,CVE-2020-3794。
1.Adobe Coldfusion组件介绍
Adobe ColdFusion,是一个动态Web服务器,其CFML(ColdFusion Markup Language)是一种程序设计语言,类似现在的JSP里的JSTL(JSP Standard Tag Lib),从1995年开始开发,其设计思想被一些人认为非常先进,被一些语言所借鉴。
Coldfusion 最早是由 Allaire 公司开发的一种应用服务器平台,其运行的 CFML(ColdFusion Markup Language)针对Web应用的一种脚本语言。文件以*.cfm为文件名,在ColdFusion专用的应用服务器环境下运行。在 Allaire 公司被 Macromedia 公司收购以后,推出了 Macromedia ColdFusion 5.0,类似于其他的应用程序语言,cfm文件被编译器翻译为对应的 c++ 语言程序,然后运行并向浏览器返回结果。虽然 .cfc 和 custom tag 具有类似的重用性,但 cfc 提供了更加灵活的调用方式,例如 webservice 方式的调用支持。
Macromedia已经被Adobe并购,所以ColdFusion亦成为Adobe旗下产品。
2.漏洞描述
2020年3月18日,Adobe官方发布针对Adobe Coldfusion的安全更新补丁,编号为APSB20-16。补丁中包含Adobe ColdFusion 任意文件读取和任意文件包含漏洞,CVE编号分别为CVE-2020-3761,CVE-2020-3794。
由于AJP协议设计存在缺陷导致内部相关的属性可控,攻击者可以构造属性值,实现漏洞的利用,成功利用这些漏洞可导致获得敏感文件信息,甚至可以进行远程代码执行漏洞的利用。
3.漏洞分析
此漏洞与之前爆出的Tomcat文件包含漏洞CVE-2020-1938的利用方式相同,利用ajp协议设计缺陷,攻击者可以构造内部属性值,通过控制:
· javax.servlet.include.request_uri
· javax.servlet.include.path_info
· javax.servlet.include.servlet_path
三个属性值,实现漏洞的利用。
以Adobe Coldfusion 2018作为漏洞分析的环境,分析Adobe Coldfusion处理ajp协议数据的代码(runtime路径下导入的tomcat-coyote.jar依赖包),org.apache.coyote.ajp.AjpProcessor类代码如下:
可以判断漏洞利用流程与CVE-2020-1938基本一致。
4.漏洞复现
搭建Adobe Coldfusion 2018漏洞环境,通过AJP协议向Adobe Coldfusion服务器发送构造好的数据,成功获取到了Adobe Coldfusion路径下的敏感文件信息。的效果如下:
5.影响范围
目前受影响的Adobe Coldfusion版本:
ColdFusion 2016 Update13及之前版本
ColdFusion 2018 Update7及之前版本
6.修复建议
官方已经针对此漏洞发布APSB20-16补丁,请受影响的用户参考以下链接安装补丁更新:
https://helpx.adobe.com/security/products/coldfusion/apsb20-16.html
7. 时间轴
2020/3/18 Adobe官方发布针对Adobe Coldfusion的安全更新补丁,编号为APSB20-16。
2020/3/20 深信服千里目安全实验室成功复现此漏洞并发布漏洞分析文章。
如若转载,请注明原文地址: