当前位置: 首页 > 教程 > 安全测试 >

未经验证的重定向和转发

精华
小牛编辑
213浏览
2023-03-14

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

让我们来了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。

  • 威胁代理 - 检测发现未经检查的重定向很容易。查找可以设置完整URL的重定向。未经检查的标头更难,因为他们瞄准内部网页。
  • 攻击者的方法 - 重定向可能会尝试安装恶意软件或欺骗受害者披露密码。
  • 安全弱点 - 如果攻击者仅访问内部功能怎么办? 如果他们被恶意软件欺骗怎么办?
  • 如何发现缺陷 - 任何可以欺骗有效的应用程序用户向网站提交请求的人。
  • 技术影响 - 攻击者链接到未经验证的重定向并诱导受害者点击它。
  • 业务影响 - 应用程序经常将用户重定向到其他页面,或以类似方式使用内部转发。有时目标页面有一个未经验证的参数。

示例

未经验证的重定向和转发的一些经典示例如下 -
假设应用程序有一个页面 - redirect.jsp,它接受一个参数redirectrul。黑客添加了一个恶意URL,用于重定向执行网络钓鱼/安装恶意软件的用户。

http://www.mywebapp.com/redirect.jsp?redirectrul=hacker.com

所有Web应用程序用于将用户转发到站点的不同部分。为了实现相同的目的,一些页面使用参数来指示如果操作成功则应该将用户重定向到何处。攻击者制作一个URL,该URL通过应用程序的访问控制检查,然后将攻击者转发给攻击者无法访问的管理功能。

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

预防机制

  • 最好避免使用重定向和转发。
  • 如果它是不可避免的,那么应该在不重定向目标的情况下涉及用户参数的情况下完成。