漏洞概述 在Mage AI应用程序的登录功能中发现了一个DOM-Based Cross-Site Scripting (XSS)漏洞。该漏洞存在于 组件( )中。应用程序从页面URL读取 参数,并在成功认证后立即(或对于已登录用户,在OAuth参数时)构造一个重定向URL,直接嵌入该参数的值,没有任何验证或清理。攻击者可以注入恶意JavaScript负载(例如,使用 协议)到 参数中。当受害者触发重定向时,应用程序尝试将浏览器重定向到恶意URL,执行攻击者的脚本。 影响范围 会话劫持:攻击者可以窃取受害者的会话令牌或认证cookie,完全访问其Mage AI账户及相关项目和数据。 凭证窃取:脚本可以在合法站点的上下文中呈现虚假登录提示,以捕获用户的凭证。 任意操作:脚本可以使用受害者的活动会话进行API请求、创建、修改或删除管道,或执行受害者被授权的任何操作。 内部网络 pivoting:如果Mage AI实例位于内部网络中,XSS可用作从受害者浏览器对其他内部系统进行攻击的跳板。 修复方案 为了修复此漏洞,应用程序必须在重定向之前验证和清理 参数。 验证重定向路径保持在同一来源并使用安全方案 使用 构造函数解析路径,检查当前来源和协议。 此验证正确处理: 相对路径如 (解析为 ) 同一来源内的绝对路径如 阻止危险方案如 、 、 等 阻止跨来源重定向 在导航之前应用验证 如果 通过验证,则可以安全使用;否则,回退到默认安全路径。 建议也使用 进行导航以确保代码一致性。然而,应注意 不应被依赖来清理URL。这是一个已知问题,维护者已回复“不会修复”。因此,必须在执行任何导航之前验证重定向路径,无论是通过 还是 。 POC代码 利用代码 一个复杂的负载可以通过插入额外的查询参数或使用URL编码来隐藏JavaScript,使URL看起来对受害者不那么可疑。