漏洞概述 在Kortix-AI Suna的 和 页面中发现了一个DOM-Based跨站脚本(XSS)漏洞。该应用错误地信任了URL参数( ),并将其传递给 和 。攻击者可以构造一个恶意链接,当被认证用户打开时,会在其浏览器上下文中执行任意JavaScript代码。这可能导致会话劫持、凭证窃取、内部网络 pivoting 以及未经授权的行为。 影响范围 会话劫持:攻击者可以窃取受害者的会话令牌或认证cookie,从而完全访问账户、文件和数据。 任意操作:脚本可以使用受害者的活动会话进行API请求、创建、修改或删除项目,或执行受害者授权的任何操作。 凭证窃取:脚本可以在合法站点的上下文中呈现一个假的登录表单,以捕获用户的凭证。 内部网络Pivoting:如果受害者位于内部网络中,XSS可以用作跳板,从受害者的浏览器对其他内部系统进行攻击。 修复方案 为了修复此漏洞,应用程序应在使用 变量进行重定向之前验证并清理该变量。以下是几种方法: 方法1 此方法仅允许绝对URL路径如 ,并防止开放重定向,例如 。 方法2 此方法允许 和 方案的重定向URL,但也防止开放重定向。功能上与方法1相同。 1. 验证重定向路径是否保持在同一源并使用安全方案:使用 构造函数解析路径相对于当前源,并检查源和协议。 此验证正确处理: 相对路径如 (解析为 ) 同一源内的绝对路径如 阻止跨源和开放重定向如 和 阻止危险方案如 、 、 等 2. 在任何导航之前应用验证:如果 通过验证,则可以安全使用;否则,回退到默认安全路径如 。 敏感Cookie应设置为HttpOnly 此外,为了减轻未来XSS风险的影响,建议将与会话标识相关的敏感cookie标记为 。这可能需要对客户端代码进行进一步调整。目前, 的 为 。 POC代码 利用代码 影响 成功利用此漏洞具有高影响: 会话劫持:攻击者可以窃取受害者的会话令牌或认证cookie,从而完全访问账户、文件和数据。 任意操作:脚本可以使用受害者的活动会话进行API请求、创建、修改或删除项目,或执行受害者授权的任何操作。 凭证窃取:脚本可以在合法站点的上下文中呈现一个假的登录表单,以捕获用户的凭证。 内部网络Pivoting:如果受害者位于内部网络中,XSS可以用作跳板,从受害者的浏览器对其他内部系统进行攻击。 修复建议 为了修复此漏洞,应用程序应在使用 变量进行重定向之前验证并清理该变量。以下是几种方法: 方法1 此方法仅允许绝对URL路径如 ,并防止开放重定向,例如 。 方法2 此方法允许 和 方案的重定向URL,但也防止开放重定向。功能上与方法1相同。 1. 验证重定向路径是否保持在同一源并使用安全方案:使用 构造函数解析路径相对于当前源,并检查源和协议。 此验证正确处理: 相对路径如 (解析为 ) 同一源内的绝对路径如 阻止跨源和开放重定向如 和 阻止危险方案如 、 、 等 2. 在任何导航之前应用验证:如果 通过验证,则可以安全使用;否则,回退到默认安全路径如 。 敏感Cookie应设置为HttpOnly 此外,为了减轻未来XSS风险的影响,建议将与会话标识相关的敏感cookie标记为 。这可能需要对客户端代码进行进一步调整。目前, 的 为 。