未经验证的重定向和转发


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

让我们借助简单的图表了解该缺陷的威胁代理、攻击向量、安全弱点、技术影响和业务影响。

未验证的重定向和转发

例子

未经验证的重定向和转发的一些经典示例如下 -

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

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

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

预防机制

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

  • 如果这是不可避免的,那么应该在重定向目的地时不涉及用户参数。