存储型跨站脚本(XSS)漏洞报告 - MainWP插件
漏洞概述
在测试MainWP WordPress插件(https://github.com/mainwp/mainwp)时,发现客户端管理功能中存在存储型XSS漏洞,具体位于"添加联系人" > 联系人姓名字段。
技术细节
漏洞成因
应用程序在将用户输入渲染回DOM之前未进行清理过滤,导致攻击者可以注入恶意JavaScript载荷。这些载荷存储在数据库中,并在任何查看受感染客户端配置文件的用户(通常是管理员)浏览器中执行。
漏洞验证
通过编辑客户端时在联系人姓名字段插入以下载荷进行验证:
|
|
保存更改后,载荷按原样存储,并在重新加载客户端详情页面时立即执行JavaScript,证实了XSS漏洞的存在。
影响分析
该漏洞允许攻击者在查看受影响页面的任何用户浏览器中执行任意JavaScript,导致用户会话和操作的完全控制。
攻击者可利用此漏洞:
- 窃取管理员会话cookies
- 以管理员身份执行未授权操作(例如添加恶意客户端或插件)
- 如果攻击者在联系人姓名字段存储恶意脚本,任何查看或编辑该客户端的管理员都会无意中触发载荷
攻击链分析
虽然初始注入可能需要管理员级别访问权限,但攻击影响链会快速升级:
- 载荷存储在数据库中并在UI的多个部分呈现
- 任何查看或编辑客户端的管理员都会触发载荷,无需攻击者在注入后采取任何操作
- 如果攻击者通过钓鱼、凭据泄露或插件配置错误获得低权限MainWP用户访问权限,他们可以植入此载荷并等待完全管理员触发
修复过程
开发团队提供了mainwp.zip修复文件,经测试确认已成功修复该存储型XSS漏洞。
协调披露
厂商请求30天的协调期以确保用户有足够时间更新,之后将进行CVE分配和技术细节公开。
赏金争议
尽管漏洞得到确认和修复,但厂商认为该漏洞需要管理员权限才能利用,因此只提供了50美元赏金,远低于报告者的预期。厂商解释其赏金计划主要关注无需管理员权限即可利用的漏洞。
漏洞状态:已修复 严重等级:中等 赏金金额:50美元 CVE ID:未分配