Goby插件分享 | 可对内置暴力破解进行字典替换的Dictionary Config
前言:Goby内置有暴力破解漏洞字典,但是由于内置的字典较为简单,直接使用会导致这些漏洞几乎发挥不了作用。所以这次在插件里内置了不同等级的漏洞字典,我们可以选择字典保存,批量替换及自定义替换字典,从而使这些漏洞在扫描时发挥作用。
0×001 插件效果
1.1 插件使用
1.1.1 批量替换字典
1.1.2 自定义字典
1.2 插件入口
安装完插件后,可以在工具栏内看到插件的按钮。
1.3 字典配置
插件目前预置了3个等级的字典:精简、中等以及复杂。
自定义可以自由组合这些字典的等级进行配置。
至少需要选择一个协议的字典进行配置,如果没有选择直接保存的话会有提示。
配置成功后会有提示。
0×002 插件开发
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;
}
}
0×003 小结
本次插件开发很顺利,功能较为简单,用到的API也是非常基础的API:registerCommand、showif rameDia 及 showInformationMessage。Dictionary Config目前只有精简、中等以及复杂三个等级的字典,后续会对字典进行完善并且支持大家自行上传字典。
Beta 1.8.230 及以上版本支持使用该插件。
插件开发文档及Goby开发版下载:
关于插件开发在B站都有详细的教学,欢迎大家到弹幕区合影~
如果表哥/表姐也想把自己上交给Goby社区(获取超级内测版),戳这里领取一份插件任务?
https://github.com/gobysec/GobyExtension/projects
文章来自Goby团队,转载请注明出处。
下载Goby内测版,请关注微信公众号:GobySec
下载Goby正式版,请关注网址:https://gobies.org
最新评论