由于今天看到一篇文章《危险的 target="_blank" 与 “opener”》,里面提到了一个老知识点,就是target="_blank"的时候,新打开的页面可以通过window.opener来控制源页面的URL,进行钓鱼攻击。这个攻击手法我在博客《神奇的opener对象》中也说过,这里就不再赘述了。这篇文章抛出另一种与target有关的钓鱼攻击。
首先可以看一个小例子:
见上图,打开上述链接,然后点击“click me”,打开了百度。这时查看地址栏,的的确确是百度,然后我们等待10秒,再次查看地址栏,这个时候已经变成攻击者的网址了;即使此时我们再访问淘宝等页面,只要仍然在这个标签页下,地址栏就仍然会被控制。
原理其实也很简单:
<html> <head><meta charset="utf-8"></head> <body> <a href="https://www.baidu.com" target="baidu" id="baidu">click me</a> <script> setInterval(function() { baidu.href="http://675ba661.2m1.pw/baidu"; baidu.click(); }, 10000); </script> </body> </html>
a标签的target属性指定目标URL在哪个页面下打开,就是目标页面的window.name。如果这个a标签的href发生了变化,再次点击链接,页面仍然在相同的标签页下打开,所以就覆盖了上一次打开的页面。
所以,这个攻击方式和opener的攻击方式比较相似,都是在不能跨域的情况下,控制目标标签页的URL,进而进行钓鱼攻击。
但我觉得这个攻击持久型更佳,因为即使用户在新标签中输入自己的域名,或者又通过超链接点击到其他网站里,这个页面的地址栏永远是受到源页面的控制的。理论上在源页面不关闭的情况下,可以永久控制新页面的地址栏。
原文:https://www.leavesongs.com/PENETRATION/use-target-to-spoof-fishing.html