target=‘blank’属性,触发钓鱼风险

0x01 漏洞背景

国外网友近日曝出大部分网站都忽视了的安全漏洞,包括 Facebook,Twitter,Google 等都被检测出带有 The target=”_blank” 安全缺陷。
预计该“安全漏洞”影响了 99% 的互联网网站和大部分浏览器,Instagram 已修复这个问题,有趣的是谷歌拒绝修复这个问题,谷歌认为“这属于浏览器缺陷,不能由单一的网站进行有意义的缓解”。

0x02 漏洞原理

带有 target=”_blank” 跳转的网页拥有了浏览器 window.opener 对象赋予的对原网页的部分权限,从而达到跳转到钓鱼网站的目的

攻击者只需在想要攻击的页面,通过评论等方式,插入写有下面代码的的网页链接,即可对该页面进行钓鱼攻击,当然地址换成具有攻击性的地址即可。这里以facebook为例。

1
2
3
<script language="javascript">
window.opener.location = 'https://www.facebook.com/'
</script>

0x03 漏洞验证

点击这个 测试页面,这个页面有个链接,该链接的页面写入了上面的代码。点击了这个链接后,原窗口就会跳转到钓鱼页面,这里即是facebooke登录页面。
嵌入有攻击链接页面
攻击链接的页面
最终的钓鱼页面
运用场景:很多,举个简单例子,假设攻击者将这个攻击链接插入到facebook的评论里,评论和攻击页面的内容都非常具有诱惑力。受害者点击后,发现原页面变成了facebook登录页面,以为自己账号被退出了,如果他重新登录,呵呵!账号密码就这样被攻击者拿到了。除了facebook又可以换成微博的其他社交工具。

0x05 漏洞修复方法

为 target=”_blank” 加上 rel=”noopener noreferrer” 属性。

0x06 参考

https://coding.net/u/tvvocold/pp/125176