存储型跨站脚本(XSS)漏洞报告 - MainWP插件"添加联系人"姓名字段
漏洞概述
在测试MainWP WordPress插件(https://github.com/mainwp/mainwp)时,发现客户端管理功能中存在存储型XSS漏洞,具体位于"添加联系人"→联系人姓名字段。
技术细节
漏洞成因
应用程序在将用户输入渲染回DOM前未进行消毒处理,导致攻击者可以注入恶意JavaScript载荷。这些载荷被存储在数据库中,并在任何查看受感染客户端配置文件的用户(通常是管理员)浏览器中执行。
漏洞复现
在编辑客户端时,向联系人姓名字段插入以下载荷:
|
|
保存更改后,载荷被原样存储,并在重新加载客户端详情页面时立即执行JavaScript代码,证实了XSS漏洞的存在。
影响分析
该漏洞允许攻击者在查看受影响页面的任何用户浏览器中执行任意JavaScript代码,导致:
- 窃取管理员会话cookies
- 以管理员身份执行未授权操作(如添加恶意客户端或插件)
- 完全控制MainWP仪表板,操纵连接的WordPress站点
- 推送虚假更新或泄露敏感客户端数据
修复验证过程
- 初始报告:2025年6月4日提交漏洞报告
- 状态更新:6月5日状态改为"已分类"
- 修复验证:6月6日开发团队提供mainwp.zip修复版本
- 确认修复:6月8日验证确认存储型XSS漏洞已成功修复
- 协调披露:双方同意30天的协调期后再进行CVE分配和公开披露
- 奖励处理:6月13日漏洞标记为已解决,发放50美元奖金
争议点
研究人员认为奖励金额(50美元)与漏洞严重程度(中等)不匹配,但MainWP团队指出:
- 该漏洞需要预先获得管理员权限才能利用
- 拥有管理员权限的攻击者已经可以安装任意插件和运行自定义代码
- 漏洞赏金计划主要关注无需管理员权限即可利用的漏洞
时间线
- 2025年6月4日:漏洞初始报告
- 6月5日:状态改为"已分类"
- 6月6日:提供修复版本
- 6月8日:确认漏洞修复
- 6月13日:漏洞标记为已解决,发放奖金
- 7月17日:报告公开披露
附件
报告包含多个证明漏洞存在的截图和视频证据(1.png至10.png,Stored-XSS_POC.mp4等)