根据用户提供的截图,我提取了以下关键信息: 1. 漏洞概述 (Vulnerability Overview): 标题: Casdoor v2.356.0 Open Redirect (Casdoor v2.356.0 开放重定向漏洞)。 描述: 这是一个关于 Casdoor 应用程序的开放重定向漏洞。 关键缺陷: 1. 是子字符串匹配。如果应用程序注册了 ,那么 也会通过验证。 2. 将注册的重定向 URL 视为正则表达式模式。URL 中包含的 字符匹配任何字符。例如, 会匹配 。 2. 影响范围 (Impact): 攻击者可以构造一个 OAuth 授权请求,将 参数设置为 。 这会导致 检查通过。 用户随后会被重定向到 。 3. 修复方案 (Fix): 建议: 使用严格的相等性比较或验证前缀匹配。切勿将配置的 URL 值用作正则表达式模式。 具体做法: 单独比较解析后的 URL 组件(scheme, host, path)和 。 代码逻辑: 检查 是否为空,如果为空则返回 false。 4. 代码提取 (Code Extraction): 截图中包含了两个代码块:一个是展示漏洞的 Go 代码片段,另一个是修复后的 Go 代码片段。 现在,我将这些信息整理成简洁的中文 Markdown 格式。 Casdoor v2.356.0 开放重定向漏洞总结 漏洞概述 该漏洞存在于 Casdoor v2.356.0 版本中,主要涉及 OAuth 授权流程中的重定向 URL 验证逻辑存在缺陷,导致攻击者可以构造恶意 URL 将用户重定向到任意网站。 关键缺陷分析 1. 子字符串匹配漏洞: 代码使用 进行验证。如果注册了 ,攻击者可以构造 来绕过检查。 2. 正则表达式注入风险: 代码使用 将注册的 URL 视为正则表达式。URL 中的点号 会被视为通配符(匹配任意字符)。例如, 会错误地匹配 。 攻击场景 攻击者构造一个 OAuth 授权请求,将 参数设置为 。由于上述验证逻辑的缺陷, 检查会通过,导致用户被重定向到恶意域名 。 修复方案 核心建议: 使用严格的相等性比较或验证前缀匹配。切勿将配置的 URL 值直接用作正则表达式模式。 具体实现: 应该单独比较解析后的 URL 组件(scheme, host, path)与 。 相关代码 漏洞代码片段 (Go): 修复代码片段 (Go):