漏洞总结 漏洞概述 这是一个开放重定向(Open Redirect)漏洞。 1. 直接重定向: 端点接受了一个 GET 参数,并直接将其传递给 ,未进行任何验证。如果请求了一个不存在的 survey name,系统会立即重定向到攻击者控制的 URL。 2. 二次重定向:如果请求了有效的 survey,URL 会被嵌入到一个隐藏的 form field 中。在提交后, 会将该 URL 回显在 JSON 中,客户端 JS 随后将其用作 ,导致第二次未验证的重定向。 影响范围 文件: 涉及函数: 和 修复方案 1. 移除 GET 参数读取: 不再从 GET 参数中读取 。 2. 强制重定向: 不再读取 POST body 中的 ,而是始终重定向到 。 3. 代码变更:移除了相关的重定向逻辑代码,确保用户无法通过参数控制重定向目标。 涉及代码(Diff)