日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言:

Elasticsearch服務普遍存在一個未授權訪問的問題,個人最近剛好在幫某企業梳理這方面的資產,但每次都是通過Goby掃描出來后再手動訪問,比較麻煩。

剛好看到Goby的內測版推出了開放式的插件功能,所以抱著試手的想法開發了此款插件。

在Goby團隊小姐姐的強烈推薦下,分享我此次的開發經驗。希望通過本文內容,能幫助大家在插件市場愉快的玩耍。

插件效果

當掃描出Elasticsearch未授權漏洞后,會在漏洞相關?以及資產詳情處顯示“Indices按鈕”,點擊即可展開該es服務器的Indices信息:

如何半天玩轉一個“ES未授權利用”插件

 

在搜索框輸入關鍵字可以根據index名稱進行模糊搜索:

如何半天玩轉一個“ES未授權利用”插件

 

構建流程

官方的開發文檔還是很好理解的,有提供開發腳手架。

下載→解壓到goby/extensions目錄,再運行Goby掃描,一個demo就出來了。

接下來就是改!

核心集中在確認入口點和API調用。

開發文檔地址: https://github.com/gobysec/GobyExtension

1. 確定入口點

在選定ES做插件后,我把入口點選擇在了漏洞相關頁面,首先在./package.json中做以下配置:

  ...
  "main": "./extension.js",
  "contributes": {
    "views": {
      "vulList": [
        {  
          "command": "elastic",
          "title": "Indices",
          "visible": "elastic_visi"
        }
      ]
    }
  }
  ...

其中需要關注以下幾點:

main: 插件的主入口文件路徑

contributes.views. vulList[0].command: 注冊命令的名稱

contributes.views. vulList[0].title: 在按鈕中顯示的文字

contributes.views. vulList[0].visible: 這里也要填入注冊命令的名稱,主要作用是判斷按鈕是否在該漏洞顯示,回調函數應該返回一個布爾型的值。

2. API調用

./extension.js中做以下配置:

function activate(content) {
    goby.registerCommand('elastic', (content) => {    //這里的'elastic'和上文中contributes.views. vulList[0].command的值保持一致
        let path = __dirname + "/index.html?hostinfo=" + content.hostinfo;    //設置打開新窗口的html文件路徑,并傳入當前hostinfo信息
        goby.showIframeDia(path, "Elasticsearch未授權漏洞利用", "600", "600");    //打開一個600*600的iframe窗口,窗口標題為'Elasticsearch未授權漏洞利用'
    });

    goby.registerCommand('elastic_visi',  (content) => {    //這里的'elastic_visi'和上文中contributes.views. vulList[0].visible的值保持一致
        return content.name === "Elasticsearch unauthorized"    //對漏洞名稱進行判斷
    });
}
?
exports.activate = activate;

小提示:漏洞名稱可以直接在漏洞窗口進行查找,點擊進去之后復制名稱即可。

如何半天玩轉一個“ES未授權利用”插件

 

3. index.html頁面開發

官方插件中使用的是layui框架進行開發,我這里使用的是Vue+Element-ui。

在使用框架方面Goby比較開放,沒有限制,大家可以任意發揮。

這里簡單介紹一下我的開發流程。

首先需要處理傳過來的hostinfo信息,可以直接copy官方文檔提供的代碼:

getIframeQueryString(name) {
  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  let r =window.parent.document.getElementById("goby-iframe").contentWindow.location.search.substr(1).match(reg);
  if (r != null) {
    return decodeURI(r[2]);
  }
  return null;
}

拿到漏洞的IP后,就可以對目標IP進行自定義請求了:

request({    //在utils中有對axIOS進行簡單封裝
  method: 'get',
  url: 'http://' + this.getIframeQueryString("hostinfo") + "/_cat/indices",
  params: {
    format: "json"
  }
})

最后對拿到的數據進行處理,顯示為表格樣式,整個插件就開發完成了~

重構后的目錄如下所示:

goby-extension-elasticsearch
├── babel.config.js
├── package-lock.json
├── package.json
├── public
│   ├── CHANGELOG.md
│   ├── README.md
│   ├── extension.js
│   ├── favicon.ico
│   ├── index.html
│   └── package.json
├── src
│   ├── App.vue
│   ├── element-variables.scss
│   ├── main.js
│   ├── plugins
│   │   └── element.js
│   └── utils
│       └── request.js
└── vue.config.js

編譯:

npm run build

輸出的目錄結構如下:

goby-extension-elasticsearch/dist
├── CHANGELOG.md
├── README.md
├── css
│   ├── app.b2893489.css
│   └── chunk-vendors.2ac5db4b.css
├── extension.js
├── favicon.ico
├── fonts
│   ├── element-icons.535877f5.woff
│   └── element-icons.732389de.ttf
├── index.html
├── js
│   ├── app.2279fc27.js
│   └── chunk-vendors.8cb53444.js
└── package.json
?

4.測試

在Goby的extensions目錄下新建任意名稱的文件夾,把goby-extension-elasticsearch/dist目錄下的文件移動進去即可。使用開發版本的Goby可以打開DevTools進行調試。

5.打包

打包前把自己及插件的相關信息分別填到package.json、Readme.md、Changlog.md文件中。

Readme.md信息會顯示在詳情中

如何半天玩轉一個“ES未授權利用”插件

 

Changlog.md信息會顯示在更新日志中

如何半天玩轉一個“ES未授權利用”插件

 

小提示:打包時必須把插件文件夾整個打包,多打一層或者不打包都會發布失敗。壓縮包和文件夾名稱保持一致,如下圖所示。

如何半天玩轉一個“ES未授權利用”插件

 

6.發布

  1. 注冊賬號: https://gobies.org/user/register
  2. 在Goby客戶端進行登陸
  3. 上傳插件
  4. 審核通過后會收到郵件/微信通知,然后可以在Goby的擴展程序中看到

小結

Goby插件的開發文檔寫的非常清晰,我從閱讀文檔到插件開發完成,剛好用了一上午的時間。

不過也因為插件功能剛剛開放,所以有一些不足。

個人認為插件所產生的流量不應該直接從Client端直接發送到目標服務器,應該在server端(goby-cmd)進行中轉。

如果后續提供類似的API的話就更完美了。

由于當時沒看到開發版本,開發過程中也沒有進行調試,所以本篇文章也就沒有詳細介紹Debug過程。唯一出問題的地方就是在打壓縮包得時候沒有新建目錄,直接散裝在壓縮包里了導致上傳失敗,不過goby團隊小姐姐很快就幫我解決了這個問題。

對于本插件的迭代計劃,下一版打算在列出Indices信息后,點擊表格添加預覽詳細docs功能

如果表哥們對本插件有其他想法&需求,可以直接在我的項目中提issues。

https://github.com/fazzzzzzz/goby-extension-elasticsearch

注:由于是Client端插件,所以即使設置外部Server或者代理,流量仍會從Client端發 出,可能存在流量不可達導致列不出indices的情況。

轉載自:https://www.freebuf.com/articles/web/243003.html

分享到:
標簽:授權 利用 ES
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定