什么是开放重定向?

Andrew2020-10-12 10:56:50

开放重定向是一种Web应用程序安全性问题,攻击者可以利用它来利用您的企业信誉来提高网络钓鱼攻击的效率。如果允许开放重定向,则攻击者可以发送网络钓鱼电子邮件,该电子邮件包含与您的域名的链接,受害者将被从您的Web服务器重定向到攻击者的站点。

请注意,2013年OWASP Top 10列表(A10未验证的重定向和转发中将开放重定向作为漏洞包括在内。

什么是重定向

当网站或Web应用程序更改客户端中访问的URL时,将发生重定向(通常是外部–内部重定向通常称为forwards)。从后端有几种方法可以做到这一点。通常,重定向是通过将特定的HTTP标头发送到客户端来进行的,但是您也可以使用JavaScript代码创建重定向。

什么是开放重定向

当客户端提供重定向的目标并且未对其进行过滤或验证时,将存在一个开放的重定向漏洞。以下是安全重定向和不安全重定向的一些示例:

  • 如果合法网站将客户端重定向到固定URL,则这是安全的重定向。
  • 如果合法网站根据用户提供的参数安全地构建重定向URL,则它是安全的重定向。
  • 如果合法网站基于用户提供的参数构造了重定向URL,但没有充分验证/过滤输入,则它是不安全的重定向(攻击者可能会操纵输入)。
  • 如果合法网站允许用户指定目标重定向URL,则它是不安全的重定向(开放重定向)。

通常,使用动态重定向(基于客户端的数据)的开发人员必须将此类数据视为不受信任的输入。否则,攻击者会将浏览器重定向到恶意站点,并使用您的域名来欺骗受害者。

例如,如果您的域是example.com,则攻击者可能创建以下URL:

https://example.com/redirect.php?url=http://attacker.com

然后,攻击者可以发送此URL作为网络钓鱼尝试的一部分,以将受害者重定向到恶意网站Attacker.com。攻击者希望开始时example.com的外观可信任,并使它们陷入网络钓鱼诈骗。

开放重定向的示例

以下简单的PHP代码创建一个开放的重定向:

$redirect = $_GET['url'];  header("Location: " . $redirect);

这是一个开放的重定向漏洞,因为攻击者可能在GET请求的url参数值中提供恶意网站URL,然后此目标URL将作为Location标头发送,将客户端重定向到恶意网页。

开放式重定向漏洞的后果

如果您有一个开放的重定向漏洞,则它可能导致许多其他攻击:

  • 网络钓鱼:使用开放重定向的最明显方法是将受害者从原始站点转移到看起来相同的站点,窃取用户凭据,然后返回漏洞站点,就像什么也没发生一样。
  • 跨站点脚本(XSS):如果重定向允许使用data:javascript:协议,并且客户端在重定向中支持此类协议,则攻击者可以执行XSS攻击。
  • 服务器端请求伪造(SSRF):开放重定向可用于逃避SSRF筛选器。
  • 内容安全策略绕过:如果使用CSP防御XSS,并且列入白名单的域之一具有开放重定向,则可以使用此漏洞绕过CSP。
  • CRLF注入:如果重定向参数允许换行,攻击者可能会尝试执行响应头拆分。

如何防止打开重定向

防止开放重定向漏洞的最安全方法是在Web应用程序中不使用任何重定向。如果这不可能,则可以尝试以下方法:

  • 使用固定目标页面列表。将其完整的URL存储在数据库表中,并使用标识符作为请求参数而不是URL本身来调用它们。例如,存储example2.com在数据库表与标识符42,然后使用下面的呼叫重定向到example2.com:example.com /重定向。php **?redir_id = 42
  • 如果您不能使用固定的重定向目标列表,请过滤不受信任的输入(如果可以,请使用白名单,而不是黑名单)。确保检查部分字符串,例如,http:// *example.com *.evil.com是有效的URL。此外,禁止使用除HTTP和HTTPS之外的所有协议。另请注意,尽管您尽了最大努力,攻击者还是有可能找到绕过您的过滤器的方法。
网络钓鱼重定向
本作品采用《CC 协议》,转载必须注明作者和本文链接
在当前不断发展的网络威胁环境中,电子邮件已经成为了网络钓鱼攻击的主要目标。威胁行为者正在不断采用更复杂的技术方法来绕过安全监测机制并欺骗目标用户以实施威胁行为。目前,最为流行的攻击策略之一就是利用合法平台实现欺骗性链接并进行重定向攻击。在此类活动中,威胁行为者会利用可信任平台进行重定向攻击,并将毫无戒心的目标用户重定向到恶意URL目的地。
钓鱼攻击中,攻击者可以使用ChatGPT生成虚假电子邮件或消息,更好地伪装成受害者所信任的个人或组织,从而获取受害者的个人信息。这种行为对个人和组织的信息安全构成威胁。ChatGPT可以用于监控文本和消息内容本身,自动化检测机器生成内容,保护用户的信息和隐私,采取措施来限制ChatGPT的滥用,以确保其在网络安全领域的积极作用。
钓鱼攻击手法很多,攻击仿真度越来越高,且真假难辨。Gophish是为企业和渗透测试人员设计的开源网络钓鱼工具包。撰文搭建Gophish钓鱼系统,还原邮件钓鱼的基本操作流程,希望从一个攻击者的视角看到安全的不足之处,提高安全意识。
Microsoft正在跟踪针对企业的正在进行的Office 365网络钓鱼活动,这些攻击能够检测沙盒解决方案并逃避检测。活动背后的威胁参与者利用重定向器URL来检测来自沙箱环境的传入连接。微软继续通过其官方帐户发布的一系列推文继续其发展。微软指出,其用于Office 365的Defender产品能够检测网络钓鱼和其他电子邮件威胁,并将威胁数据跨电子邮件和数据,端点,身份和应用程序进行关联。
一种新型网络钓鱼活动伪装成 "版权侵权 "电子邮件,试图窃取 Instagram 用户的备份代码,以帮助威胁攻击者绕过账户上配置的双因素身份验证(2FA)。
据 Bleeping Computer 网站披露,研究人员发现了一项大规模网络钓鱼活动。攻击者滥用 Facebook 和 Messenger 引诱数百万用户访问网络钓鱼页面,诱骗用户输入帐户凭据。
Facebook 有自身保护措施,可以阻止钓鱼网站 URL 的传播,但威胁攻击者使用某个技巧,绕过了这些保护措施。
攻击者通过攻击DNS服务器,将流量重定向钓鱼网站。SSL证书具备服务器身份认证功能,可以使DNS劫持导致的连接错误情况及时被发现和终止,同时HTTPS协议可以在数据传输中对数据进行加密传输,保护数据不被窃取和修改。综上可知,在应对网络钓鱼攻击方面,为网站、电子邮件系统部署SSL证书实现HTTPS加密是较为有效的解决方案。
经研究人员分析,钓鱼活动背后的操作者可以利用这些被盗账户,向用户的朋友进一步发送钓鱼信息,通过在线广告佣金获得了大量收入。Rafael Dorado 的哥伦比亚男子调查的一部分。目前尚不清楚是谁查封了该域名并在网站上发布了通知。PIXM 已经和哥伦比亚警方与国际刑警组织分享了调查结果,同时强调尽管许多已识别的 URL 已下线,但钓鱼活动仍在进行中。
Andrew
暂无描述