插件分享 可进行Web漏洞扫描和验证的vulmap_goby 配置 vulmap

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注go)
img

正文

2.1.1 Vulmap工具介绍

Vulmap 是一款 Web 漏洞扫描和验证工具, 可对 WebApps 进行漏洞扫描, 并且具备漏洞利用功能, 目前支持的 WebApps 包括 ActiveMQ, Flink, Shiro, Solr, Struts2, Tomcat, Unomi, Drupal, Elasticsearch, Fastjson, Jenkins, Laravel, Nexus, Weblogic, Jboss, Spring, ThinkPHP等。

2.1.2 Goby开发版

写Goby务必安装Goby就是了,Goby分别有不同版本,官方文档中推荐使用Goby开发版。

Goby开发版下载:https://cn.gobies.org/docs.html

且里边有一个HelloWorld的例子可以很直观的展示Goby插件的效果和接口位置等。这里的Goby插件主要都是靠JS,我在尝试编写之前是完全没有过编写JS经验的,纯白,自己只是个Python手,凭借着Python的一点经验花了一天半最终实现了这个插件,期间的官方文档起到了很大的帮助,这里要给编写doc的表哥(也可能是表姐)们打call,也找@go0p师傅问了不少问题特此感谢(所以插件开发问题尽管找他233)。

2.2 插件目录结构

搬自https://cn.gobies.org/docs.html的插件目录结构。

├── .gitignore // 忽略构建输出和node_modules文件
├── README.md // 插件介绍文档
├── CHANGELOG.md // 插件更新日志文档
├── src
│ └── extension.js // 插件源代码
├── package.json // 插件配置清单

主要代码分别package.jsonextension.js,前者为插件的配置清单,后者为插件主要代码。

2.3 设定插件配置选项

这里就需要编写package.json,Vulmap的内容如下

“configuration”: {
“vulmap.py 位置”: {
“type”: “string”,
“default”: “”,
“description”: “请输入vulmap.py的位置(示例:/home/zhzy/vulmap.py)”,
“fromDialog”: true
},
“python3 命令或位置”: {
“type”: “string”,
“default”: “python3”,
“description”: “请输入在当前环境下的Python3的命令或位置,也可以是绝对路径(示例:python3 or /usr/bin/python3)”
}
},

这里主要设定了两个键值,一个是vulmap.py位置用于设定Vulmap扫描器的位置路径,之后需要调用Vulmap进行扫描时使用,没有默认值,因为大家的目录习惯都不同所以需要手动指定。

再就是python3命令或位置需要用户指定python3命令的全称或绝对路径同样用于之后扫描时调用Vulmap,至于填写python、python3、python3.8等等就要看具体自己系统里的名称了,还是一样因为每个人的配置习惯和环境变量不同。

这里有个坑点,我在使用的电脑为Debian testing(Linux系统),使用的Goby也是Linux版本的,且平时使用zhzy(uid:1001)的用户,但是由于Goby需要root权限启动我每次都是sudo ./Goby来启动,这就导致Goby识别的环境变量和我当前的环境变量不同,例如我在zhzy用户设置alias python = ‘/xxx/python3.9’但是以sudo运行的Goby会识别python为Linux默认的python2,就导致版本不对应,所以还是建议写入python的绝对路径。

对应效果:
在这里插入图片描述

2.4 设定入口点

为显示有Vulmap按钮的地方,此时需要编写extension.js文件,内容如下

let identical = {
“web”: true,
“http”: true,
“https”: true
};

然后自定义一个注册命令用于检测是否显示Vulmap按钮

Goby.registerCommand(‘vulmapCheck’, function (content) {
if (identical[content.protocol]) return true;
return false;
});

分别会在Goby界面中能够识别到http、https、Web协议的地方显示按钮,这里的按钮位置参考了Packer Fuzzer插件及Xray插件,因为都是进行Web扫描,故入口点也一样。

对应的效果:

在这里插入图片描述
在这里插入图片描述

2.5 扫描的调用及结果

调用Vulmap进行扫描主要为以下内容:

function runScanner(targetUrl,taskResult){
var cp = require(‘child_process’);
var command = config[“python3 命令或位置”][“default”] + " " + config[“vulmap.py 位置”][“default”] + " -u " + targetUrl + " > " + taskResult;
// Goby.showInformationMessage(command);
cp.exec(command, (error, stdout, stderr) => {
console.log(stdout: ${stdout});
console.log(stderr: ${stderr});
if (error) {
console.error(扫描命令错误: ${error});
Goby.showErrorMessage(扫描命令错误: ${error});
return;
} else {
console.log(command)
Goby.showInformationMessage(任务创建成功: ${taskID},请稍等片刻再次点击查看结果);
}
})
}

调用扫描主要还是靠var command拼接的系统命令,因为Goby目前无法滚动实时显示执行结果,故目前将扫描结果重定向到文本文件中,在Vulmap扫描中,会在插件目录result中创建对应任务ID的结果文件,再次点击按钮后会判断文件存在并展开文件内容,判断代码如下:

if (fs.existsSync(taskResult)) {
const lines = fs.readFileSync(taskResult).toString()
if (lines.includes(“Scan completed and ended”)) {
if (lines.includes(“[+]”)) {
Goby.showSuccessMessage(vulmap 扫描完成并发现漏洞 !);
} else if (lines.includes(“[?]”)){
Goby.showSuccessMessage(vulmap 扫描完成并发现疑似漏洞 ?);
} else if (lines.includes(“install -r requirements.txt”)){
Goby.showWarningMessage(vulmap 的依赖还有问题,要先解决 ~);
} else {
Goby.showSuccessMessage(vulmap 扫描完成,但是没有发现漏洞 ~);
}
Goby.showIframeDia(taskResult, “vulmap scan result”, “900”, “520”);

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-9eOYL6QR-1713559359960)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值