一键采集上传常见的细节问题( 2.2插件入口点Web检测:使用了与《Xray插件》作者go0p)

优采云 发布时间: 2021-12-09 15:10

  一键采集上传常见的细节问题(

2.2插件入口点Web检测:使用了与《Xray插件》作者go0p)

  

  此时,我们可以在终端中使用which命令查看python3.7.7版本的安装位置,填写该参数中获取的值(绝对路径调用)即可启用要正常调用的插件。

  

  2.2 插件入口点

  网页检测:与“Xray插件”go0p作者相同的判断方法!使用,并且只有在满足条件时才会显示“Packer Fuzzer”按钮。

  首先,资产类型必须是“https”、“http”和“web”之一:

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

  然后会在Packer_Check中进行判断,如果不匹配则返回false结果从而不显示对应的按钮:

  goby.registerCommand('Packer_Check', function (content) {

if (identical[content.protocol]) return true;

return false;

});

  2.3 设置扫描锁定

  点击“Packer Fuzzer”后,程序会判断扫描锁定文件是否存在,如果存在则给出提示,无需进一步操作:

  if (fs.existsSync(lockPath)) {

goby.showInformationMessage("Packer Fuzzer正在扫描中,可以稍后再来看看!");

} else {

......

}

  扫描锁定文件位于PackerFuzzer项目的tmp目录下,命名格式为:当前项目ID+当前目标IP+当前目标端口+当前资产类型+锁定扩展名:

  let lockPath = config["Packer Fuzzer路径"]["default"] + dirB + taskID + '_' + hostIP + '_' + hostPort + '_' + webProtocol + ".lock";

  首次开启扫描时,插件会使用以下命令生成扫描锁定文件,然后调用扫描函数:

  fs.writeFileSync(lockPath,'lock it','utf8');

runScanner(hostIP,hostPort,webProtocol,webURL,taskID);

  当然,考虑到系统差异,我们对路径中的斜杠做了如下处理:

  if (os.type() == 'Windows_NT') {

dirA = '\\reports\\';

dirB = '\\tmp\\';

} else {

dirA = '/reports/';

dirB = '/tmp/';

}

  2.4 检测目标特征

  点击“Packer Fuzzer”按钮后,程序会判断扫描锁定文件是否存在,如果存在则给出提示,无需进一步操作:

  let fingerprint = ['\\u003cnoscript','webpackJsonp','\\u003cscript id=\\"__NEXT_DATA__','webpack-','\\u003cstyle id=\\"gatsby-inlined-css','\\u003cdiv id=\\"___gatsby','\\u003cmeta name=\\"generator\\" content=\\"phoenix','\\u003cmeta name=\\"generator\\" content=\\"Gatsby','\\u003cmeta name=\\"generator\\" content=\\"Docusaurus'];

  写指纹不难,但识别出的数据从何而来?我们知道Goby在扫描完成后会保留每个目标的banner信息,但是这个API在官方插件文档中并没有公开,需要我们自己去了解。首先,我们需要在Goby开发版的控制台中对关键操作设置断点,然后我们可以找到我们需要的API细节以及如何调用它们:

  

  可以看到getIpInfo需要传入三个参数,第一个是回调函数,第二个是当前任务ID,第三个是当前目标站点IP。之后,该函数将格式化横幅信息json并将其传递给回调函数。调用进去。了解了这些之后,我们就可以开始调用这个函数了:

  getIpInfo(dealWebInfo,goby.getTaskId(),hostIP);

  dealWebInfo函数的检测函数如下:

<p>function dealWebInfo(result){

taskID = result.data["taskId"];

if (result.data["honeypot"] == 0){

if (identical[result.data["protocols"][content.hostinfo]["protocol"]]){

var flag = 0;

for(var i = 0; i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线