html排序按钮_插件分享 | 可进行排序扫描任务的Task Queue

308a9b926929103345733de5e9c00e3a.png

前言:在以往hvv场景中使用Goby的过程总是存在一个痛点:时间短,目标多,只能盯着扫描进度结束后才能手动返回到初始界面开启下一个扫描任务(内心极度狂躁)。本次Goby更新后又开放了新的插件入口点以及API,使添加扫描任务步骤简洁化,随时可以将收集到的信息添加多个任务进行排序扫描,实现一种动态持续的队列效果。

ee581f7a0d125cdb284209f60a5b92a4.png 01

 插件效果1.1 插件使用

0065950fde65bb549a11258ba631a559.gif

1.2 插件入口

Goby内测版1.8.230更新后,产品界面有了新变化,在产品右侧开放了新的插件入口点:工具栏。安装完Task Queue插件之后,可以在工具栏看到插件的按钮。

1aac656475d53e4fd170005d94934e2a.png

1.3 操作队列

点击按钮后会打开我们的自定义弹窗,分为两个页面:一个是添加扫描任务队列的页面;一个是查看队列的页面。

3030b2682215f85a899d4b6e2b3c5142.png

Task可以查看队列中的任务详情,还可以对队列中的任务进行修改删除操作。

263f0c9f15f0356a0bb3d981b96ceefd.png

ee581f7a0d125cdb284209f60a5b92a4.png 02

 插件开发2.1 确定功能的入口点

入口点选择在新开放的工具栏

"contributes": {        "views": {                "toolbar":[                    {                        "command": "addTask",                        "title": "Task Queue ",                        "icon": "src/assets/img/logo2.png",                        "tips":"Task Queue"                    }                ]        }}

2.2 任务队列数据的存储

为了避免Goby重新加载插件而导致插件数据丢失,所以会在当前插件目录下创建一个data.json的文件来保存数据

fs.writeFile(this.filePath,JSON.stringify({"data":[]}, null, 6),(err)=>{}

2.3 确定实现功能需要用到的API

2.3.1 获取扫描数据

添加队列需要用户自定义扫描信息,因此需要获取Goby内置的端口信息、POC信息以及扫描序列信息,要用到getPortList,getVulnerabilityList,getOrderList

goby.getPortList().then((res)=>{    config.port = res.data;    let con = ``;    for(let i in res.data){      con += `        ${res.data[i].type}      `;     }    $('.port').html(con);    form.render('select');    $('.portcontent').val(res.data[0].value);})goby.getVulnerabilityList().then((res)=>{    let con = ``;    for(let i in res.data){       con += `            ${res.data[i]}                `;      }      $('.vulnerability').html(con);      form.render('select');})goby.getOrderList().then((res)=>{      let con = ``;      for(let i in res.data){         con += `           ${res.data[i]}         `;      }      $('.order').html(con);      form.render('select');})

2.3.2 绑定事件通知bindEvent

在扫描结束后需要开启队列中下一个任务、扫描开始/暂停以及结束后刷新页面队列数据。

这里展示暂停后刷新页面。

//因为暂停后会涉及到操作队列文件,所以延迟1秒刷新页面goby.bindEvent('onPauseScan',(res)=>{        setTimeout(()=>{            init();        },1000)    })

2.3.3 开始扫描startScan

goby.startScan(queue.data[index]).then((res)=>{     queue.data[index].taskId = res.data.taskId;     queue.data[index].state = 1;     fs.writeFile(this.filePath,JSON.stringify(queue, null, 6),(err)=>{            if(err){                 reject(err);            }else{                 resolve(res);            }      })});

2.4  业务开发

因为要在自定义弹窗页面中操作队列,所以在extension.js中声明了全局队列对象实例

window.taskQueue = new taskQueue();

taskQueue 对象上存在添加队列,删除队列,开始扫描等方法,自定义弹窗中可以通过parent.taskQueue 来获取此实例,通过 parent.goby 获取Goby对象

let goby = parent.goby;let taskQueue = parent.taskQueue;

通过taskQueue实例来操作队列

例如:删除某个任务

$('.con').delegate('.delete','click',function(){        taskQueue.delete([$(this).parent().attr('queueId')]).then(()=>{             init();        });    })

ee581f7a0d125cdb284209f60a5b92a4.png 03

 小结这次写这个任务队列插件一路坎坷,首先就是队列任务数据的保存,本来准备保存在全局变量中,可是Goby重新加载插件时数据会丢失,所以将数据保存在了本地文件中。然后就是在自定义弹窗中操作队列文件,所以全局声明了一个新的taskQueue的实例,这样在自定义弹窗页面中就可以通过parent.taskQueue对象来操作队列文件。

最后我们还计划在本插件上线二期任务——定时扫描及拖拽排序,夜深人静的时候,你只管休息,Goby就替你工作啦~ 表哥们尽情期待~

插件开发文档及Goby开发版下载:

https://gobies.org/docs.html

本次插件案例解析及用到的API在B站都有详细的教学,欢迎大家到弹幕区合影~

  • https://www.bilibili.com/video/BV1ki4y1c7hm/

86b4c811d03a0a8c15eb4bfc11675192.png更多插件分享

• Faz | 如何半天玩转一个“ES未授权利用”

• Vanilla | 可以查看摄像头快照的“Hikvision”

• 李大壮 | 可以上传json文件的“Shodan”

• go0p | 可以进行web爬虫的Xray插件

• c1o2a3 | 可以变身的超级赛亚人主题

• Bacde | 可以查询子域名及同IP域名的RapidDNS

• Poc Sir | 可对网站进行一键扫描的Packer Fuzzer

如果表哥/表姐也想把自己上交给社区d95f7dfcd2b9c4194eab95112e3edc14.png,戳这里领取一份插件任务?

https://github.com/gobysec/GobyExtension/projects

15f2f9828fb6c1e15394299e148add43.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ如何做到不丢不重

目录 MQTT协议 如何保证消息100%不丢失 生产端可靠性投递 ​编辑 RabbitMQ的Broker端投 (1)消息持久化 (2)设置集群镜像模式 (3)消息补偿机制 消费端 ACK机制改为手动 总结 MQTT协议 先来说下MQTT…

【LESS系列】简介和使用

LESS —— 一个CSS预编译框架,它在CSS的语法基础之上,引入了变量、Mixin(混入)、运算以及函数等功能,大大简化了CSS的编写,并且降低了CSS的维护成本,就像它的名称所说的那样,LESS可以…

掌握 React 与 React Native

今天面试被人问到React 与 React Native ,废话不多说,直接上干货。 React Native官网:https://reactnative.cn/ React Native App 页面布局直接通过 HTML 和 CSS 的前端基础技术进行布局与开发,大大降低了学习成本。 你如果早就在心里有开发一个自己 App 的想法,而刚…

cpu序列号唯一吗_怎么看电脑硬件是不是新的 有什么软件能检测吗?

怎么看电脑硬件是不是全新的很多人比较关心的问题,毕竟现在很多奸商为了最求利润什么招式都用的出来,其中依旧重新,依次充好是最常见的伎俩了。 怎么看电脑硬件是不是新的 有什么软件能检测吗?这个时候大家可能就会想了&#xff0…

扬州大学计算机考研难考吗,扬州大学(专业学位)计算机技术考研难吗

考研真题资料优惠价原价选择很多考生在准备扬州大学(专业学位)计算机技术考研难吗?是考研报考的时候都会产生这样的疑问:这个专业的研究生好吗?适合我吗?对我以后的人生和职业会有帮助吗?考生在准备扬州大学(专业学位)…

21世纪的设计模式:适配器模式

这是我的演讲“ 21世纪的设计模式”的第三部分。 适配器模式桥接世界。 在一个世界中,我们有一个概念的界面。 在另一个世界,我们有不同的界面。 这两个接口有不同的用途,但有时我们需要进行转移。 在一个编写良好的世界中,我们可…

在百度搜索页添加公司总部的客服电话

先看一下收录标准 1.登录百度数据开放平台:http://open.baidu.com/data/ms/nav/pc/ 注意事项: 2.进到信息提交的页面,先填写相应的资质,后提交信息即可,按照给出来的示例,去填写相对应的信息就可以了

理解Linux系统中的load average(图文版)

本文转自:http://heipark.iteye.com/blog/1340384 一、什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度…

click点击后鼠标移去就失效怎么实现_鼠标右键失灵怎么办,你知道原因吗?

在上网时,有时会遇到按右键没有反应的情况。一开始还以为是中了病毒,但是重启之后,又恢复正常了,这到底是怎么回事呢?如果是在我电脑上操作电脑软件导致的鼠标右键失灵可能以下原因造成的。一:系统繁忙&…

计算机考研379分,考研379分报考南开大学被刷,是调剂还是二战?师姐建议非常肯定...

原标题:考研379分报考南开大学被刷,是调剂还是二战?师姐建议非常肯定随着考研国家线公布,34所自主划线的985大学也加快了复试的脚步,目前很多大学已经开始了复试工作,比如清华大学,南开大学等。…

微信小程序源码下载链接

参考链接备用:https://www.cnblogs.com/ytkah/p/9003620.html 微信小程序的火热程度大家都有所了解,也有很多牛人写了不错的小程序,今天ytkah就整理一些github上的小程序开源项目,源码可以直接下载来用,感兴趣的朋友赶…

开源源码合集

微信小程序的火热程度大家都有所了解,也有很多牛人写了不错的小程序,今天Benson就整理一些github上的小程序开源项目,源码可以直接下载来用,感兴趣的朋友赶紧去看看吧!仿豆瓣电影微信小程序 https://github.com/zc…

2019广西对口计算机分数线,2019广西本科第一批投档分数线出炉,网友:我差一点考上清华大学...

2019广西本科第一批投档分数线出炉,网友:我差一点考上清华大学……就在昨天,7月13号,广西招生考试院公布了“2019年普通高校招生本科第一批最低投档分数线”。不知道,参加第一批志愿填报的考生们,你们过线了…

Android 4.4及以上系统下应用的状态栏颜色渐变效果的实现

上一篇转载的博文里讲到了怎么开启状态栏透明的效果,不过如果在有ActionBar的情况下,会出现状态栏透明而ActionBar横亘在状态栏和内容之间的丑陋情况,如下图: 通过百度之后,发现了GitHub上有个项目可以实现从ActionBar…

学习Spring-Cloud –基础结构和配置

我有机会与Spring-Cloud一起创建了一组云就绪微服务的样本集,Spring-Cloud如何使不同的基础架构组件和服务很好地协同工作给我留下了深刻的印象。 我习惯于基于基于Netflix OSS的堆栈创建微服务,通常在Netflix堆栈中, Eureka被认为是微服务进…

【APICloud系列|6】使用APICloud接入客服系统美洽获取Appkey配置

1.使用超级管理员(没有注册的提前注册登录一下)登录美洽:https://app.meiqia.com/ 2.找到设置——SDK 3.点击添加APP配置 4.上传

架构(三层架构)、框架(MVC)、设计模式三者异同点

前言: 本博客主要针对架构、框架和设计模式三者的差别、还有三层和MVC的差别进行讨论、对于这三者一点都不了解的、请点在维基和百度百科上补补课、这里就不发链接了 软件架构(software architecture) 软件的架构是系统的一个草图、阐述了各个…

轩逸车联网功能怎么用_北斗已建设完成,那“北斗导航”怎么用?“短报文功能”怎么用?...

6月23号长征三号乙运载火箭将北斗导航系统(BDS)最后一颗卫星,也就是第55颗卫星成功发射升空,这是我国全球导航系统的收官之作,整个导航系统建设耗时20年。中国北斗(BDS)是继美国(GPS)、俄罗斯(GLONASS)第三大成熟的全球定位导航系统&#xff…

nba2k19登陆显示你与服务器,NBA2K19无法登陆了?NBA2K19连不上服务器怎么办?[图]...

NBA2K19是一款很不错的篮球类游戏,喜欢篮球的朋友一定不要错过了!大家都知道这款游戏可以联网也可以单机,但是有朋友反映NBA2K19连不上服务器,这是什么原因呢?NBA2K19连不上服务器:1、卸载其他NBA2K学习版内…

深入进货单-价格跟踪----宇然电脑公司管理软件

细节决定软件是不是一款好的管理软件,也验证软件是否成熟的标致.E2在细节上考虑周到. 在进货时,我们常常会想知道历史的进货过程.在E2下非常简单. 转载于:https://www.cnblogs.com/do_easy/p/4365236.html