CVE-2024-58289Microweber 2.0.15版本存在一个严重的存储型跨站脚本(Stored XSS)漏洞。该漏洞允许已认证的低权限攻击者在用户个人资料字段中注入恶意JavaScript代码。当其他用户查看包含恶意脚本的个人资料时,攻击者注入的脚本将在受害者浏览器中执行,从而可能窃取用户会话cookie、劫持用户账户、执行任意客户端操作或进行进一步的社会工程攻击。由于攻击代码被永久存储在服务器端,所有访问该用户资料的用户都会成为潜在受害者,这大大扩大了攻击的影响范围和危害程度。攻击的成功利用需要攻击者拥有一个有效的低权限账户,但不需要任何特殊权限或复杂的技术手段,显著降低了攻击门槛。
漏洞根源在于Microweber的用户资料编辑功能对输入内容缺乏充分的输入验证和输出编码。攻击者通过在用户资料的“名字”字段(first name field)中注入恶意JavaScript payload(如:<script>alert(document.cookie)</script>或使用事件处理器如<img src=x onerror=...>),系统未能对特殊字符进行HTML实体编码就直接存储到数据库中。当其他用户通过Web界面查看该用户资料时,未经过滤的内容被直接嵌入到HTML页面返回给客户端浏览器。浏览器将恶意脚本作为合法代码执行,从而触发XSS攻击。攻击者可利用此漏洞配合会话劫持技术获取受害者权限,或通过JavaScript读取页面内容并外传敏感信息。由于是存储型XSS,攻击具有持久性,一旦注入成功,恶意代码将持续存在于系统中直到被发现和清除。