IPBUF安全漏洞报告
English
CVE-2025-10575 CVSS 6.5 中危

CVE-2025-10575:WordPress WP jQuery Pager插件SQL注入漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-10575
漏洞类型
SQL注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress WP jQuery Pager插件

相关标签

SQL注入WordPressWP jQuery Pager插件漏洞CVE-2025-10575中危漏洞信息泄露Contributor权限WordfencePHP

漏洞概述

CVE-2025-10575是WordPress WP jQuery Pager插件中存在的一个SQL注入漏洞。该插件是一款用于WordPress网站的jQuery分页功能插件,允许用户在文章和页面中实现图片画廊的分页展示功能。该漏洞由Wordfence安全团队的研究员发现,并于2025年10月15日公开披露。

该漏洞存在于插件的WPJqueryPaged::get_gallery_page_imgs()函数中,具体问题出在处理'shortcode'的'ids'属性参数时。由于插件在对用户输入的参数进行SQL查询前,未对参数进行充分的转义处理(insufficient escaping),也未对现有的SQL查询进行充分的预处理(lack of sufficient preparation),导致攻击者可以在查询中注入恶意的SQL语句。

根据CVSS 3.1评分标准,该漏洞评分为6.5分,属于中等严重等级。攻击者需要具有Contributor级别及以上的认证权限才能利用此漏洞。成功利用后,攻击者可以通过在现有SQL查询中追加额外的查询语句,从数据库中提取敏感信息,如用户密码哈希、个人信息等。该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N,表明该漏洞通过网络进行攻击,攻击复杂度低,对机密性影响高,但不影响完整性和可用性。

技术细节

该漏洞的核心问题在于WP jQuery Pager插件的WPJqueryPaged::get_gallery_page_imgs()函数中对'ids'短代码属性参数的处理不当。当用户在WordPress文章或页面中使用该插件的短代码(shortcode)时,插件会读取'ids'属性的值,并将其直接拼接到SQL查询语句中,而没有使用WordPress提供的预处理语句(prepared statements)或对输入进行适当的转义。

具体而言,攻击者可以通过构造包含恶意SQL片段的'ids'参数值,利用SQL注入技术绕过正常的查询逻辑。例如,攻击者可以使用UNION SELECT语句将额外的查询结果附加到正常结果中,从而从数据库的其他表中提取敏感数据。由于WordPress的wp_users表中存储了管理员的用户名和密码哈希,攻击者可以重点针对这些数据进行提取。

利用此漏洞需要攻击者拥有Contributor级别或更高的WordPress用户权限。Contributor是WordPress中相对较低的权限级别,用户可以通过简单的注册流程获取(如果网站开放了注册功能)。一旦拥有该权限,攻击者可以在创建文章或页面时嵌入恶意的短代码,触发SQL注入。

该漏洞的利用方式属于经典的二阶SQL注入(Second-order SQL Injection)或直接SQL注入,取决于具体的注入点位置。攻击者不需要与受害者进行任何交互(UI:N),完全可以在后台静默执行攻击。

攻击链分析

STEP 1
步骤1:获取低权限账户
攻击者通过WordPress网站开放的注册功能注册一个Contributor级别的账户,或者通过其他方式(如购买、钓鱼)获取具有Contributor权限的认证凭据。
STEP 2
步骤2:登录WordPress后台
使用获取的Contributor级别账户登录到目标WordPress网站的后台管理系统。
STEP 3
步骤3:构造恶意短代码
创建新的文章或页面,在内容中插入包含恶意SQL注入payload的WP jQuery Pager短代码,通过'ids'参数注入UNION SELECT等SQL语句。
STEP 4
步骤4:触发SQL注入
发布或预览包含恶意短代码的文章/页面,触发WPJqueryPaged::get_gallery_page_imgs()函数执行,将恶意SQL语句拼接到原始查询中。
STEP 5
步骤5:提取敏感数据
通过注入的SQL查询从WordPress数据库中提取敏感信息,如管理员的用户名、密码哈希、邮箱等关键凭据信息。
STEP 6
步骤6:权限提升与后续攻击
利用获取的管理员密码哈希进行密码破解或直接利用,进一步获取网站管理员权限,执行更深层次的攻击,如植入后门、篡改内容等。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-10575 PoC - SQL Injection in WP jQuery Pager Plugin Vulnerable Parameter: ids (shortcode attribute) Affected Function: WPJqueryPaged::get_gallery_page_imgs() Affected Versions: <= 1.4.0 Required Privilege: Contributor or above --> // Step 1: Log in to WordPress as a Contributor-level user // Step 2: Create a new post or page // Step 3: Insert the following malicious shortcode in the content: [wp_jquery_pager ids="1 UNION SELECT user_login,user_pass,user_email,1,1,1,1,1,1,1,1,1 FROM wp_users WHERE ID=1--" limit="10"] // Step 4: Publish or preview the post/page // Step 5: The injected SQL query will execute, extracting admin credentials // from the wp_users table and displaying them in the gallery output // Alternative PoC using sqlmap (after identifying the injection point): // sqlmap -u "http://target.com/?page_id=X&ids=1*" --cookie="wordpress_logged_in_xxx=xxx" --dbs // The vulnerability exists because the plugin directly concatenates // the 'ids' parameter into SQL queries without using prepared statements: // $query = "SELECT * FROM {$wpdb->posts} WHERE ID IN ({$ids})"; // Instead of using: // $wpdb->prepare("SELECT * FROM {$wpdb->posts} WHERE ID IN (%s)", $ids);

影响范围

WordPress WP jQuery Pager插件 <= 1.4.0

防御指南

临时缓解措施
在官方发布修复补丁之前,建议采取以下临时缓解措施:1)暂时禁用WP jQuery Pager插件,直至升级到安全版本;2)限制Contributor级别用户创建包含短代码的内容权限;3)通过WAF规则阻止包含SQL注入特征的请求(如UNION SELECT、information_schema等关键字);4)监控数据库查询日志,识别异常查询行为;5)定期备份数据库,以便在遭受攻击后能够快速恢复。

参考链接

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