网络钓鱼
跨站点脚本
服务器端请求伪造
内容安全策略绕过
CRLF 注入
有些Web应用中提供了能够重定向到参数指定的URL的功能,该重定向功能就被称为重定向器(Redieector)。
其中,能够重定向至任意域名的重定向叫做自由重定向(Open Redirect)。自由重定向可能会导致用户在不知情的情况下被带到其他域名的网站,从而遭受到钓鱼式攻击(Phishing)。
为了防范自由重定向漏洞,应该重新评估“外界能够指定重定向目标URL”的功能是否真的不可或缺,并尽可能将重定向的目标固定。如果实在不能固定重定向的目标,就需要将重定向的目标限制在允许的域名范围内。
如果您有一个开放的重定向漏洞,则容易会被如下攻击:
- 网络钓鱼:使用开放重定向的最明显方法是将受害者从原始站点转移到看起来相同的站点,窃取用户凭据,然后返回漏洞站点,就像什么也没发生一样。
- 跨站点脚本(XSS):如果重定向允许使用data:或javascript:协议,并且客户端在重定向中支持此类协议,则攻击者可以执行XSS攻击。
- 服务器端请求伪造(SSRF):开放重定向可用于逃避SSRF筛选器。
- 内容安全策略绕过:如果使用CSP防御XSS,并且列入白名单的域之一具有开放重定向,则可以使用此漏洞绕过CSP。
- CRLF注入:如果重定向参数允许换行,攻击者可能会尝试执行响应头拆分。
开放式重定向漏洞有以下危害:
网络钓鱼:使用开放重定向的最明显方法是将受害者从原始站点转移到看起来相同的站点,窃取用户凭据,然后返回漏洞站点,就像什么也没发生一样。
服务器端请求伪造(SSRF):开放重定向可用于逃避SSRF筛选器。
内容安全策略绕过:如果使用CSP防御XSS,并且列入白名单的域之一具有开放重定向,则可以使用此漏洞绕过CSP。
CRLF注入:如果重定向参数允许换行,攻击者可能会尝试执行响应头拆分。
跨站点脚本(XSS):如果重定向允许使用data:或javascript:协议,并且客户端在重定向中支持此类协议,则攻击者可以执行XSS攻击。
推荐文章