程序员的安全进阶:分享与学习系列 - 未经验证的重定向和转发

编写能够处理未经校验的重定向和转发的网站或应用程序,对您的用户和组织而言都极其危险。黑客常利用这一常见错误实施网络钓鱼诈骗,或获取本应受限的页面及信息。
每当 Web 应用程序被设计为将用户转发到新页面时,这些请求就存在被篡改或劫持的风险。如果缺乏相应的校验机制来防止转发参数指向非预期的目标,就会发生这种情况。
好消息是,未经校验的重定向和转发是环境中较容易消除的漏洞之一。一旦消除,您只需采取几个简单的步骤,即可确保未来不再产生此类问题。
在本期节目中,我们将学习:
- 黑客如何利用未经校验的重定向和转发漏洞
- 为什么允许未经校验的重定向和转发会带来危险
- 可用于发现并修复此问题的策略和技术。
攻击者如何利用未经校验的重定向和转发?
攻击者首先必须找到一个被设置为将用户转发到特定页面的 Web 应用程序。如果目标页面在代码中已定义,则不存在漏洞。例如,在 Java 中,这是一种安全且预定义的方式,无需用户执行任何操作(如点击超链接)即可将用户发送到新位置。
response.sendRedirect("http://www.knownsafesite.com");
如果网站被编程为接受用户输入的重定向,或者参数保持开放(例如为了从其他来源获取信息),就会出现漏洞。例如,开发人员可能会使用 "url" GET 参数。
response.sendRedirect(request.getParameter("url"));
虽然这提供了更大的灵活性,但也产生了未经校验的重定向和转发漏洞。黑客可以在斜杠后添加信息,触发重定向到他们选择的任何网站,这可能是网络钓鱼邮件的一部分。用户在链接的前半部分看到的是受信任的域名,因此没有意识到网站可能会将他们转发到黑客的站点。
为什么未经校验的重定向和转发如此危险?
允许未经校验的重定向和转发所带来的危险可能非常严重。对于用户而言,最大的危险是他们可能成为网络钓鱼攻击的受害者。因为他们看到了顶级 URL,所以更有可能信任钓鱼邮件或其他通信并点击链接。如果他们被重定向到的页面看起来像真实的页面,这种欺骗手段会非常有效。他们可能会泄露用户名、密码或其他凭据,而从未怀疑自己正受到操纵。
消除未经校验的重定向和转发带来的威胁
未经校验的重定向和转发始于应用程序开发阶段。虽然事后可以消除它们,但最简单的方法是在重定向或转发函数中从一开始就不允许使用用户参数或开放字符串。相反,应严格定义用户将被转发到的 URL,消除变量,不给攻击者留下可乘之机。更好的是,考虑完全不使用重定向和转发。
如果确实无法避免在重定向或转发过程中使用变量,则必须建立校验流程,以确保重定向的目标是预设的有效目的地之一。最后,使用映射值代替实际的 URL。这样黑客只能尝试使用 URL 信息,即使他们怀疑系统使用了映射方案,也很难猜出具体内容。
关于未经校验的重定向和转发的更多信息
如需进一步阅读,您可以查看 OWASP 参考页面,了解有关未经校验的重定向和转发的内容。您还可以通过 Secure Code Warrior 平台的 免费演示 来测试您新学到的防御知识,该平台旨在培训网络安全团队成为顶尖的网络战士。要了解更多关于击败此漏洞及其他一系列威胁的信息,请访问 Secure Code Warrior 博客。
彻底解决未经验证的重定向和转发漏洞。运用您新掌握的知识,在我们的游戏化培训平台上测试您的技能: [立即开始]
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)