Jump to content

0x00 前言本文將要介紹Minio版本探測的方法,通過Python實現自動化,記錄開發細節,開源代碼。

0x01 簡介本文將要介紹以下內容:

實現思路

實現細節

開源代碼

0x02 基礎知識MinIO是一款基於Go語言發開的高性能、分佈式的對象存儲系統。 Minio可以做為雲存儲的解決方案用來保存海量的圖片,視頻,文檔。由於採用Go語言實現,服務端可以工作在Windows,Linux, OS X 和FreeBSD上,並且只需要單獨的可執行程序就可以運行。

在Windows上的環境搭建可參考:https://min.io/docs/minio/windows/index.html

1.下載最新版本:https://dl.min.io/server/minio/release/windows-amd64/minio.exe

歷史版本:https://dl.min.io/server/minio/release/windows-amd64/archive/

歷史版本在下載後將文件後綴名添加.exe,運行即可

2.啟動服務命令行參數:minio.exe server C:\minio --console-address :9090

3.Web訪問URL地址:http://127.0.0.1:9090

默認用戶名:minioadmin

默認口令:minioadmin

0x03 實現思路Minio的版本探測需要登錄到Web後台

訪問位置:Health頁面,如下圖

下载.png

從頁面中可以看到當前版本以及節點和存儲的信息

在程序實現上,我們可以通過抓包的方式分析認證過程,具體內容如下:

1.登錄訪問地址:http://127.0.0.1:9090/api/v1/login

通過json格式傳入認證信息,具體內容如下:

微信截图_20230404144856.png

登錄成功後返回狀態碼204,在Header中添加Cookie: token=xxxx作為憑據

2.讀取版本信息訪問地址:http://127.0.0.1:9090/api/v1/admin/info

需要帶有Cookie: token=xxxx作為憑據

返回結果為json格式,如下圖

下载 (1).png

補充:獲得Minio的最新版本訪問地址:http://127.0.0.1:9090/api/v1/check-version

0x04 實現細節1.登錄這裡需要考慮一個問題:默認端口被修改的情況

在用程序實現自動化時,通常會使用端口9000,但存在端口被修改為9001的情況,也存在很少一部分將端口修改為其他不常見的端口

如果端口錯誤,會返回狀態碼400,返回內容示例:

1.png

所以在程序實現上這裡可以添加一個判斷:當使用默認端口9000時,如果返回特定條件,提示端口錯誤,接下來嘗試端口9001,如果再次失敗,提示修改默認端口

完整示例代碼:

2.png 3.png

2.讀取版本信息返回結果為json格式,結果示例:

4.png這裡存在多個servers的情況,所以在解析時需要使用遍歷,示例代碼如下:

微信截图_20230404145258.png

0x05 開源代碼完整的實現代碼已上傳至github,地址如下:https://github.com/3gstudent/Homework-of-Python/blob/master/MinIO_GetVersion.py

代碼支持以下兩種命令:

getversin:用來獲得版本信息

getinfo:用來獲得完整信息

0x06 小結本文介紹了Minio版本探測的方法,結合實際環境介紹了通過Python開發的細節,開源代碼。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...