我正在对 Web 应用程序进行渗透测试,它window.history.back()
用于返回上一页。这可以安全使用吗?
例如,如果我访问 google.com,然后转到 Web 应用程序,然后按返回,它将再次向我显示 google.com。同样,如果攻击者可以在 iframe 中以某种方式模拟这一点(如果它存储在窗口的历史记录中),或者如果用户访问 URL(但这将毫无意义)或可能改变某种缓存机制。有什么真正的方法可以利用这一点?
这是一个实际问题还是我想多了?
我正在对 Web 应用程序进行渗透测试,它window.history.back()
用于返回上一页。这可以安全使用吗?
例如,如果我访问 google.com,然后转到 Web 应用程序,然后按返回,它将再次向我显示 google.com。同样,如果攻击者可以在 iframe 中以某种方式模拟这一点(如果它存储在窗口的历史记录中),或者如果用户访问 URL(但这将毫无意义)或可能改变某种缓存机制。有什么真正的方法可以利用这一点?
这是一个实际问题还是我想多了?
您可以阅读有关 windows.history Mozilla 网站的信息。简要地说,history.back() 与单击浏览器中的后退按钮没有什么不同,我认为您对 windows.history.back 的考虑过多,但对 window.history 对象本身却没有!.
但是,如果我详细解释这将超出主题,我可以简短地声称 window.history.pushState() 或 window.history.replaceState() 方法更值得担心。浏览器历史操作是可能的。您还可以通过以下方式查看它:操纵浏览器历史记录
如果一个页面有一个链接window.history.back()
,它可能会受到滥用用户对 Web 应用程序中链接的信任的攻击。一种开放重定向的形式是可能的。当用户访问重定向到 Web 应用程序的攻击者站点时,反向链接将最终到达攻击者的站点,该站点可能会显示网络钓鱼页面。
因此,用户可能相信应用程序中的所有链接都是可信的,而链接实际上可能最终会出现在另一个站点上。实际的网络钓鱼攻击会很困难,因为受害者首先需要访问攻击者的站点,确信他们正在访问受信任的 Web 应用程序,然后单击返回按钮而不注意到他们正在离开受信任的应用程序。