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

本文详细分析了MainWP WordPress插件客户端管理功能中存在的存储型XSS漏洞,攻击者可通过联系人姓名字段注入恶意脚本,威胁管理员会话安全。包含漏洞复现过程、影响评估及厂商修复响应全流程。

存储型跨站脚本(XSS)漏洞报告 - MainWP插件

漏洞概述

在测试MainWP WordPress插件(https://github.com/mainwp/mainwp)时,发现客户端管理功能的"添加联系人"→联系人姓名字段存在存储型XSS漏洞。该漏洞源于应用程序在将用户输入渲染到DOM前未进行消毒处理,导致攻击者可注入恶意JavaScript载荷。

技术细节

漏洞复现步骤

  1. 在编辑客户端时向联系人姓名字段注入载荷:
    1
    
    </TITLE><SCRIPT>alert("XSS By Rishail 2025");</SCRIPT>
    
  2. 保存更改后,载荷以原始形式存储于数据库
  3. 重新加载客户端详情页面时JavaScript立即执行

影响评估

  • 允许攻击者在查看受影响页面的用户浏览器中执行任意JavaScript
  • 可能导致用户会话完全被控制
  • 具体攻击向量:
    • 窃取管理员会话cookies
    • 以管理员身份执行未授权操作(如添加恶意客户端或插件)
    • 通过存储的恶意脚本,任何查看或编辑该客户端的管理员都会触发载荷

漏洞利用场景

攻击者通过钓鱼、凭证泄露或插件配置错误获得低权限MainWP用户访问权限后,可植入该载荷并等待高级管理员触发。由于MainWP集中管理子WordPress站点, compromised管理员会话可导致:

  • 向所有连接站点推送恶意插件/更新
  • 添加恶意用户或客户端
  • 在所有托管资产间进行横向移动

修复过程

时间线

  • 2025年6月4日:初始漏洞报告提交
  • 6月5日:厂商确认并标记为"已分类"
  • 6月6日:开发团队提供修复版本mainwp.zip
  • 6月8日:研究人员确认漏洞已修复
  • 6月13日:问题解决并发布新版本,奖励50美元奖金

争议点

研究人员认为奖励金额(50美元)与漏洞严重性(中等)不匹配,厂商回应称:

  • 所有XSS漏洞都需要预先获得管理员权限才能利用
  • 管理员已可安装任意插件和运行自定义代码
  • 此类漏洞不在漏洞赏金计划覆盖范围内
  • 赏金重点针对无需管理员权限即可利用的漏洞

后续处理

  • 厂商同意支持CVE分配请求
  • 约定30天协调期后再进行CVE发布和技术细节披露
  • 最终报告于2025年7月17日公开披露

漏洞类型:存储型跨站脚本(XSS)
影响组件:MainWP WordPress插件客户端管理模块
修复状态:已完全修复

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