漏洞概述 该文章详细分析了 WordPress File Upload 插件中的两个严重安全漏洞: 1. CVE-2024-9939 (CVSS 7.5): 未授权任意文件读取漏洞。攻击者可以绕过 中的认证检查(仅验证 Cookie 是否过期),从而读取服务器上的任意文件。 2. CVE-2024-11635 (CVSS 9.8): 未授权远程代码执行 (RCE) 漏洞。当 Cookie 不存在或过期时,系统会调用 函数。该函数在 语句中直接使用 Cookie 的值,且未进行任何清理或验证。攻击者可利用此点结合 攻击向量,实现远程文件包含 (RFI) 或本地文件包含 (LFI),进而执行任意代码。 影响范围 插件名称: WordPress File Upload 受影响版本: ≤ 4.24.12 修复方案 厂商通过完全消除 Cookie 中的输入(eliminating the use of inputs via Cookies)来修复了这些漏洞。 关键代码片段 (POC/Analysis) 1. 核心逻辑 (CVE-2024-9939 分析)** 该文件包含 函数,其认证逻辑存在缺陷,仅检查 Cookie 是否过期,容易绕过。 ```php //wp-file-upload-4.24.12/wfu_file_downloader.php <?php if ( defined('ABWPFILEUPLOAD_DIR') ) define('ABWPFILEUPLOAD_DIR', dirname( if ( defined('WFU_AUTOLOADER_PHP5688') ) define('WFU_AUTOLOADER_PHP5688', include_once ABWPFILEUPLOAD_DIR . '/lib/wfu_functions.php' ); $handler = (isset($_POST['handler'])) ? $_POST['handler'] : (isset($_GET['handler']) ? $_GET['handler'] : 'session_legacy'); $session_legacy = (isset($_POST['session_legacy'])) ? $_POST['session_legacy'] : (isset($_GET['session_legacy']) ? $_GET['session_legacy'] : ''); $doption_useold = (isset($_POST['doption_useold'])) ? $_POST['doption_useold'] : (isset($_GET['doption_useold']) ? $_GET['doption_useold'] : ''); $wfu_cookie = (isset($_POST['wfu_cookie'])) ? $_POST['wfu_cookie'] : (isset($_GET['wfu_cookie']) ? $_GET['wfu_cookie'] : ''); if ( $handler == '1' ) $session_legacy = '1'; if ( $doption_useold == '1' ) $doption_base = '1'; else {