CVE-2017-20219Serviio 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>。当受害者访问此链接时,恶意脚本会在其浏览器会话中执行。由于数据流完全发生在客户端,服务器端的安全设备无法检测到此类攻击。