未经验证的重定向和转发

互联网上的大多数 Web 应用程序经常将用户重定向和转发到其他页面或其他外部网站。但是,如果不验证这些页面的可信度,黑客就可以将受害者重定向到钓鱼或恶意软件网站,或使用转发访问未经授权的页面。

让我们借助简单的图表了解此漏洞的威胁代理、攻击媒介、安全漏洞、技术影响和业务影响。

unvalidated_redirects_and_forwards

示例

以下是未经验证的重定向和转发的一些经典示例 −

  • 假设应用程序有一个页面 - redirect.jsp,它接受一个参数 redirectrul。黑客添加恶意 URL,重定向用户,执行网络钓鱼/安装恶意软件。

http://www.mywebapp.com/redirect.jsp?redirectrul=hacker.com
  • 所有 Web 应用程序都用于将用户转发到网站的不同部分。为了实现相同的目的,一些页面使用参数来指示如果操作成功,用户应该被重定向到哪里。攻击者精心设计一个通过应用程序访问控制检查的 URL,然后将攻击者转发到攻击者无权访问的管理功能。

http://www.mywebapp.com/checkstatus.jsp?fwd=appadmin.jsp

预防机制

  • 最好避免使用重定向和转发。

  • 如果无法避免,则应在重定向目标时不涉及用户参数。