漏洞概述 该漏洞涉及 工具在处理重定向时的安全问题。具体来说,初始URL在获取前被验证,但自动重定向后可能请求一个私有/内部位置,导致重定向时SSRF(服务器端请求伪造)漏洞。 影响范围 问题: 在重定向后验证目标URL,可能导致重定向到私有/内部主机。 影响:用户控制的公共URL可以重定向到私有/内部主机,在最终URL被验证之前,这些请求已经发送。 严重性:中等 修复方案 1. 手动重定向处理:使用 手动处理重定向,并在每次重定向前验证目标URL。 2. 重定向深度限制:通过 限制重定向深度。 3. 拒绝私有/回环/内部重定向:在请求前拒绝重定向到私有、回环或内部目标。 4. 回归测试:添加回归测试确保私有重定向目标在请求前被阻止。 POC代码 修复后的代码变更 文件: 和 变更内容: - 添加安全重定向助手,切换图像可读性获取以使用安全重定向助手。 - 添加重定向SSRF测试,并适应客户端以显式调用 。 修复理由 SSRF控制:需要在网络I/O之前对候选目标执行SSRF控制,而不仅仅是在收到响应后。 手动重定向处理:这是保留重定向支持同时使验证顺序明确的窄方法。 回归测试:断言对SSRF重要的安全属性:阻止私有重定向目标不被请求。 测试计划 运行 运行 运行 披露说明 该PR有意将重定向处理限制在 内部。 该声明是重定向时SSRF预防,在重定向请求发送之前。 该PR不声称未经授权的利用、远程代码执行、凭证披露或不受限制的内部网络访问。 回归测试中未使用生产服务或真实密钥。 未更改无关文件。