MainWP插件"添加联系人"字段存储型XSS漏洞分析与修复

本文详细分析了MainWP WordPress插件客户端管理功能中存在的存储型XSS漏洞,攻击者可通过联系人姓名字段注入恶意脚本,导致管理员会话劫持和未授权操作。文章包含漏洞复现过程、影响分析和完整修复验证流程。

存储型跨站脚本(XSS)漏洞报告 - MainWP插件"添加联系人"姓名字段

漏洞概述

在测试MainWP WordPress插件(https://github.com/mainwp/mainwp)时,发现客户端管理功能中存在存储型XSS漏洞,具体位于"添加联系人"→联系人姓名字段。

技术细节

漏洞成因

应用程序在将用户输入渲染回DOM前未进行消毒处理,导致攻击者可以注入恶意JavaScript载荷。这些载荷被存储在数据库中,并在任何查看受感染客户端配置文件的用户(通常是管理员)浏览器中执行。

漏洞复现

在编辑客户端时,向联系人姓名字段插入以下载荷:

1
</TITLE><SCRIPT>alert("XSS By Rishail 2025");</SCRIPT>

保存更改后,载荷被原样存储,并在重新加载客户端详情页面时立即执行JavaScript代码,证实了XSS漏洞的存在。

影响分析

该漏洞允许攻击者在查看受影响页面的任何用户浏览器中执行任意JavaScript代码,导致:

  • 窃取管理员会话cookies
  • 以管理员身份执行未授权操作(如添加恶意客户端或插件)
  • 完全控制MainWP仪表板,操纵连接的WordPress站点
  • 推送虚假更新或泄露敏感客户端数据

修复验证过程

  1. 初始报告:2025年6月4日提交漏洞报告
  2. 状态更新:6月5日状态改为"已分类"
  3. 修复验证:6月6日开发团队提供mainwp.zip修复版本
  4. 确认修复:6月8日验证确认存储型XSS漏洞已成功修复
  5. 协调披露:双方同意30天的协调期后再进行CVE分配和公开披露
  6. 奖励处理: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等)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计