实现思路
实现细节
在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
访问位置:Health页面,如下图
从页面中可以看到当前版本以及节点和存储的信息
在程序实现上,我们可以通过抓包的方式分析认证过程,具体内容如下:
1.登录
访问地址:http://127.0.0.1:9090/api/v1/login
通过json格式传入认证信息,具体内容如下:
登录成功后返回状态码204,在Header中添加Cookie: token=xxxx作为凭据
2.读取版本信息
访问地址:http://127.0.0.1:9090/api/v1/admin/info
需要带有Cookie: token=xxxx作为凭据
返回结果为json格式,如下图
补充:获得Minio的最新版本
访问地址:http://127.0.0.1:9090/api/v1/check-version
这里需要考虑一个问题:默认端口被修改的情况
在用程序实现自动化时,通常会使用端口9000,但存在端口被修改为9001的情况,也存在很少一部分将端口修改为其他不常见的端口
如果端口错误,会返回状态码400,返回内容示例:
所以在程序实现上这里可以添加一个判断:当使用默认端口9000时,如果返回特定条件,提示端口错误,接下来尝试端口9001,如果再次失败,提示修改默认端口
完整示例代码:
2.读取版本信息
返回结果为json格式,结果示例:
这里存在多个servers的情况,所以在解析时需要使用遍历,示例代码如下:
代码支持以下两种命令:
getversin:用来获得版本信息
getinfo:用来获得完整信息
原文始发于微信公众号(嘶吼专业版):【技术原创】渗透基础——Minio版本探测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论