前言: Goby内置有暴力破解漏洞字典,但是由于内置的字典较为简单,直接使用会导致这些漏洞几乎发挥不了作用。所以这次在插件里内置了不同等级的漏洞字典,我们可以选择字典保存,批量替换及自定义替换字典,从而使这些漏洞在扫描时发挥作用。
0x001 插件效果
1.1 插件使用
1.1.1 批量替换字典
1.1.2 自定义字典
1.2 插件入口
安装完插件后,可以在工具栏内看到插件的按钮。
1.3 字典配置
插件目前预置了3个等级的字典:精简、中等以及复杂。
自定义可以自由组合这些字典的等级进行配置。
至少需要选择一个协议的字典进行配置,如果没有选择直接保存的话会有提示。
配置成功后会有提示。
0x002 插件开发
2.1 确定思路
用node来操作文件,用我们插件预置的字典来替换Goby内置的字典,找到Goby字典的路径:goby\golib,在Goby根目录下的golib目录就是字典的路径。
2.2 确定入口点
将插件入口点选择放在工具栏
"contributes": { "views": { "toolbar": [ { "command": "dictionaries", "title": "dictionaries", "icon":"./src/assets/img/dictionaries.png" } ] } }
2.3 业务开发
业务逻辑很简单,就是按照用户选择的等级将不同字典文件的内容写入到Goby内置字典。
首先替换文件很简单,直接在我们的插件弹窗页面操作。
将node中的模块引进来
data: { goby:parent.goby, path:parent.require('path'), fs:parent.require('fs') }
写一个文件替换的方法,需要两个参数:
1.插件预置字典的路径;
2.需要替换的字典
replace(url,name){ this.fs.readFile(url,'utf-8',(err,data)=>{ if(err){ this.fail.push(name); return; } this.fs.writeFile(this.dictionariesPath[name],data,(error)=>{ if(error){ this.fail.push(name); return; } }) }) }
最后给Save按钮绑定点击事件,并且根据用户选择的是全替换还是自定义来进行不同的操作。
<el-button type="primary" class="save" @click="save" size="small">Save</el-button>
save(){ this.fail = []; switch (this.value.label) { case 3: this.userDefined(); break; default: this.preset(); break; } }
0x003 小结
本次插件开发很顺利,用到的API也是非常基础的API:registerCommand、showIframeDia 及 showInformationMessage。Dictionary Config目前只有精简、中等以及复杂三个等级的字典,后续会对字典进行完善并且支持大家自行上传字典。
Beta 1.8.230 及以上版本支持使用该插件。
插件开发文档及Goby开发版下载:
https://gobies.org/docs.html
关于插件开发在B站都有详细的教学,欢迎大家到弹幕区合影~
(完)文章来自Goby团队,转载请注明出处。
下载Goby内测版,请关注微信公众号:GobySec
下载Goby正式版,请关注网址:https://gobies.org