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

# 用法

下载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;i<documentAll.length;i++){let v = documentAll[i];if(v.tagName == 'A'){if(v.href.length>12)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<eventlist.length;i++){eval(eventlist[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失效

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

# 局限性

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

chrome浏览器模拟鼠标点击插件clicker相关推荐

  1. python控制浏览器模拟鼠标点击网页标题_如何使用python来模拟鼠标点击(将经过实例自动化模拟在360浏览器中自动搜索python)...

    1.准备工做:html 安装pywin32,后面开发须要pywin32的支持,不然没法完成与windows层面相关的操做.python pywin32的具体安装及注意事项:shell 一.总体开发环境 ...

  2. python实现自动点击器_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)...

    一.准备工作: 安装pywin32,后面开发需要pywin32的支持,否则无法完成与windows层面相关的操作. pywin32的具体安装及注意事项: 1.整体开发环境: 基于windows7操作系 ...

  3. firefox/safari/chrome浏览器模拟iPad的userAgent的方法

    在给 iPad 做的网页进行测试的时候,有时候需要在 PC 上模拟 iPad User Agent 去访问网页,今天就介绍下如何让 Firefox,Chrome,Safari 浏览器模拟 iPad U ...

  4. C语言 在程序中打开网页,模拟鼠标点击、键盘输入

    C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述         记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...

  5. php鼠标点击事件,javascript模拟鼠标点击事件的实例代码

    javascript触发模拟鼠标点击事件 事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法. 一般 ...

  6. OpenStack noVNC Chrome浏览器里鼠标不能用的问题

    问题症状 用win10平板+Chrome浏览器(60版本,其他版本没测试过)打开云主机的控制台(VNC窗口),后端使用的是novncproxy,通过websocket协议与qemu的vnc serve ...

  7. chrome浏览器模拟手机 地理定位

    chrome浏览器模拟手机 地理定位 在pc端做touch页面调试的时候,常常会遇到需要模拟定位的情况 chrome浏览器有着强大的调试工具,尤其是新版chrome浏览器 下面我就以新版chrome浏 ...

  8. 著名模拟鼠标点击软件小点点被收购

    著名模拟鼠标点击软件小点点被收购--互联网上演资源争夺战 作为知名的下载软件,小点点在模拟鼠标点击之路上已经前行了8年之久,在全球拥有高达1亿的用户.2006年7月,消息证实:小点点被FreeEIM收 ...

  9. python模拟鼠标点击和键盘输入的操作_python模拟鼠标点击和键盘输入的操作

    所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是 pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不 ...

最新文章

  1. JVM内存结构 VS Java内存模型 VS Java对象模型
  2. 自动化用户特定实体的访问控制
  3. Microsoft Desktop Virtualization
  4. 三大开源生信基础教程和视频课程
  5. Acticity 启动 AMS
  6. python如何判断对象是否为字符串或者其他类型
  7. 一起看2018阿里技术参考图册(算法篇)
  8. Linux虚拟机添加磁盘
  9. 云智慧压测实战分享之JMeter场景设置与监控
  10. 【数据结构排序算法系列】数据结构八大排序算法
  11. 绑定数据源注意的地方
  12. python中http_Python中的HTTP错误
  13. java私塾架构二,小弟我在Java私塾学习期间的学习源码
  14. 怎么下载Windows图片和传真查看器
  15. 关闭Xshell系统提示音 Tab键 Backspace键
  16. 北京邮电计算机课程表,北京邮电大学课表管理规定
  17. WEB打印控件Lodop的使用
  18. Go字符串拼接方式深入比较
  19. Audacity如何改变音频节奏?Audacity调整音频节奏方法
  20. linux系统python3环境下安装pymysql模块

热门文章

  1. 汤晓丹的第四版计算机操作系统--第八章总结概述
  2. 技嘉主板设置硬盘启动操作教程
  3. java获取gps 串口_从串口读取GPS数据
  4. Go 1.18 版本新特性详解!
  5. 防止开发人员开发后门程序,数据库安全之应用程序调用的危险
  6. Windows TerminateThread终止线程过程(从3环到0环)
  7. 关于RouterOS 6.X使用3322域名的脚本
  8. 项目服务端的创建(丛林战争项目)
  9. 【Ubuntu】内存不够如何用外接U盘扩容(挂载)
  10. 【君思智慧园区】数字化园区管理系统