chrome浏览器模拟鼠标点击插件clicker

主要功能:浏览器插件自动点击网站,将流量导入代理扫描器进行扫描

chrome浏览器模拟鼠标点击插件clicker_第1张图片

# 用法

下载clicker插件源码,然后在chrome浏览器开发者模式下,以文件夹方式加载该插件
配置clicker,并开启插件爬虫。然后打开待测网站即可
配合代理扫描器来发现安全漏洞

源码:https://github.com/zzzzfeng/Clicker,

# 关键代码

HOOK_EVENT_LIST = [];
_addEventListener = Element.prototype.addEventListener;
Element.prototype.addEventListener = function(event, listener, useCapture) {
    HOOK_EVENT_LIST.push({"type": event, "element": this});
    console.log('event '+event);
    _addEventListener.apply(this, arguments);
};


var documentAll = document.querySelectorAll('*');
var eventlist = [];
for(let i=0;i12)
            console.log('a '+v.href);
    }else if(v.tagName == 'FORM'){
        console.log('form '+v.action);
    }else{
        let h = v.getAttribute('data-src');
        if(h)console.log('data-src '+h);
        h = v.getAttribute('data-url');
        if(h)console.log('data-url '+h);
        try{
            new URL(h);
        }catch{
            var attrs = v.attributes;
            for (var j = 0; j < attrs.length; j++) {
                attr_name = attrs[j].nodeName;
                attr_value = attrs[j].nodeValue;
                if (attr_name.substr(0, 2) == "on") {
                    console.log(attrs[j].nodeName + ' : ' + attr_value);
                    eventlist.push(attr_value);
                    //eval(attr_value);
                }
                
            }
        }
    }
    

}
console.log(eventlist);


for(var i in HOOK_EVENT_LIST){
		var evt = new CustomEvent('CustomEvent');
		evt.initCustomEvent(HOOK_EVENT_LIST[i]["type"], true, true, null);
		console.log('dispatch event '+HOOK_EVENT_LIST[i]["type"]);
		HOOK_EVENT_LIST[i]["element"].dispatchEvent(evt);
	}


for(let i=0;i

# 技术细节

  • Clicker基于chrome浏览器插件开发
  • Clicker所做的工作:
    • 寻找当前tab页面(窗口)所有的a标签,在新的tab页面打开
    • 寻找当前tab页面所有的form标签,自动填充后在新tab页面提交
    • 寻找所有标签的data-src/data-url属性,在新的tab页面打开
    • 寻找所有标签的on事件,依次触发事件执行
    • hook拦截addEventListener事件,依次触发事件执行
    • 所有tab页均会执行以上几步操作,并发执行;tab页执行完以上操作,会自动close窗口
  • 此外Clicker还有
    • tab数量监控功能,防止浏览器打开过多tab页面,而内存崩溃退出
    • 全局数组去重功能,防止重复打开
    • 白名单功能,防止打开不相干站点
    • 黑名单功能,防止自动退出,登录cookie失效

参考漏扫动态爬虫实践-安全客 - 安全资讯平台

# 局限性

- 对于事件造成的页面跳转,后续事件无法继续触发,暂时没有好的解决办法

你可能感兴趣的:(Web安全,自动化,工具,插件,chrome,安全)