未经验证的重定向和转发
未经验证的重定向和转发漏洞,有时也称为URL 重定向漏洞,是一种在 Web 应用程序中发现的错误。在这种类型的漏洞中,攻击者用来操纵 URL 并将其发送给受害者。一旦受害者打开 URL,网站就会将其重定向到恶意网站或攻击者希望用户重定向到的网站。攻击者通常借助手动操作 URL 或借助Burpsuite等多种工具来利用此类漏洞,这为攻击者提供了多种方式,因此他可以操纵 URL 以进行重定向。
URL 重定向如何工作?
首先,我们需要对 HTTP 响应代码有一个简单的了解。所以这里是响应代码:
- 1×× 信息
- 2×× 成功
- 3×× 重定向
- 4×× 客户端错误
- 5×× 服务器错误
上面的 HTTP 状态代码告诉我们我们从网站收到的响应。所以对于 URL 重定向,一般来说, 3xx代码是重定向代码,告诉用户这个 URL 将被重定向到其他页面。攻击者利用这一点并尝试注入他们的有效负载或操纵 URL 以将受害者发送到他们的恶意网站。下面是 Burpsuite 的屏幕截图,攻击者可以通过它添加过滤器并找出具有 3xx 代码的特定 URL。
上图只显示了那些有 3xx 代码的 URL。现在我们要检查 URL 中的具体参数,例如(dest、redirect、uri、path、continue、url、navigation)等。 URL 有点像 https://www.xyz.com/continue =www.xyz.com/abc。因此,攻击者在“继续”之后删除了整个 URL,并添加了他的钓鱼页面 URL,这可能是原始网页的精确副本。
攻击的逐步工作 -
- 攻击者在 Burpsuite 中拦截 URL 的请求。
- 将请求发送给蜘蛛。
- 检查参数并找到后,将请求发送到转发器选项卡。
- 攻击者选择目标位置,在哪里应用你的有效载荷。
- 开始攻击。
按照上述步骤,攻击者将获得网站成功重定向的特定 URL 列表。
攻击的影响——
- 可以通过此错误链接诸如 CSRF 之类的攻击
- 在这种情况下可以利用 XSS(跨站点脚本)
- 窃取机密信息
- 用户可以在网络钓鱼页面上被欺骗,并且可以通过多种方式被利用。
未经验证的重定向和转发漏洞的补救措施 –
- 从 Web 应用程序中删除重定向功能并替换为直接链接
- 应为需要重定向的所有特定 URL 维护服务器端列表
- 重定向的 URL 中的正确验证必须在后端集成
- 对于所有特定重定向,必须在 Web 应用程序中使用绝对 URL。