免费试用
CDNetworks
我们的多数产品都有14天的免费试用。无需信用卡。
Bricks Builder是一款功能强大的WordPress主题编辑插件。近日,CDNetworks安全实验室在WordPress 1.9.6之前版本的默认配置中发现一个远程代码执行漏洞。该漏洞可让用户绕过权限检查,从而导致远程代码执行并授予其服务器级权限。
不幸的是,利用此漏洞非常简单,而且影响范围很广。建议企业和组织验证其 WordPress 版本、解决任何相关漏洞或实施 Web 保护解决方案,以防止利用此漏洞。
在查看了公开的漏洞概述和概念验证 (PoC) 后,我们确定了 /bricks/v1/render_element
路由的全局位置。此 REST API 路由在 bricks/includes/api.php
文件中注册,其中定义了请求方法、回调函数 render_element
和权限检查回调函数 render_element_permissions_check
。
我们在源码中设置断点,进行动态调试和进一步分析。当服务器接收到请求时,会首先调用权限检查回调函数。
顺着路径bricks/includes/api.php
我们观察到权限检查回调函数render_element_permissions_check
根据nonce值进行权限验证。
在“砖块”软件中,有效的nonce是包含在前端中的,通过刷新WordPress主页,可以在前端源代码全局找到nonce,这意味着权限检查回调函数完全失效,任何未经授权的用户都可以对该API进行操作。
在验证从前端提取的 nonce 值后,我们进入回调函数 render_element
。在此函数中,调用 Ajax::render_element
函数,并传递来自请求主体的参数。
接下来我们进入bricks/includes/ajax.php
中的render_element
函数,在这个函数中,主要根据参数定位到Element_Code
类,然后进行实例化。
实例化后,调用init()
函数。
接下来,按照这个函数进入 bricks/includes/elements/base.php
。
在此文件中,请注意 this->render()
函数。然后,进入 bricks/includes/elements/code.php
。很明显,在对危险函数调用进行一些检查后,eval
函数在异常处理中用于执行用户从配置中提交的代码。在这种情况下,code 参数由用户控制,允许使用类似`。
最后从当前缓冲区的内容中获取代码执行的结果,通过回调一步步完成请求。
使用 WordPress 6.4.3 + Bricks Builder 1.9.4 在本地进行设置。在 WordPress 主页上,查看源代码并对 nonce 的值进行全局搜索。
使用 BurpSuite 构建请求 http://127.0.0.1/wordpress/?rest_route=/bricks/v1/render_element 并通过POST请求提交如下数据,执行命令“python –version”,在返回结果中可以成功看到当前主机的Python版本。
Fofa 上有超过 25,000 个相关资产。Fofa 查询:body=”/wp-content/themes/bricks/”
为了解决此漏洞:
CDNetworks 的云 WAF 针对该漏洞利用,提供即时防护,并持续调查分析其他变种攻击手法及各类组件漏洞,及时部署防护规则,最大限度降低企业的“漏洞窗口”。
最近一个月,CDNetworks 将其云安全解决方案升级为 云安全 2.0,介绍WAF的几个主要特性:
通过整合这些功能,CDNetworks 旨在满足亚太地区企业不断变化的安全需求,确保组织在竞争激烈的市场中保持受到保护。
Edge Application (边缘应用)是 CDNetworks 领先的无服务器边缘计算解决方案。阅读了解了解其原理、核心优势及典型应用场景。
2024年10月24日,CDNetworks成功抵御了东南亚某大型用户群页游平台遭受的超大规模DDoS攻击,攻击在网络层达到1.24Tbps,在应用层超过百万QPS。