[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4WgaLu_Xv8AFlGcAdgJjtwpRZEWnN8H6V_nUgFR0StU":3},{"id":4,"question":5,"answer":6,"answerHtml":7,"slug":8,"keywords":9,"article":10,"status":34,"aiModel":39,"aiConfidence":39,"updatedAt":52,"createdAt":52,"_status":51},1109,"What API endpoint returns the MinIO version information, and how should the response be parsed?","The endpoint `http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fadmin\u002Finfo` returns version and node information in JSON format when called with a valid `Cookie: token=xxxx`. Because the response may contain multiple servers, the implementation must traverse the JSON array to extract the version for each node, as demonstrated in the [open-source Python tool](\u002Fnews\u002Fpenetration-basics-minio-version-detection).","\u003Cp>The endpoint `http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fadmin\u002Finfo` returns version and node information in JSON format when called with a valid `Cookie: token=xxxx`. Because the response may contain multiple servers, the implementation must traverse the JSON array to extract the version for each node, as demonstrated in the [open-source Python tool](\u002Fnews\u002Fpenetration-basics-minio-version-detection).\u003C\u002Fp>\u003Cp>\u003Ca href=\"\u002Fnews\u002Fpenetration-basics-minio-version-detection\">Read the related One Day Sec article\u003C\u002Fa>\u003C\u002Fp>","what-api-endpoint-returns-the-minio-version-information-and-how-should-the-respo-1777480585449","MinIO, version information, API, JSON parsing, node traversal",{"id":11,"title":12,"slug":13,"description":14,"content":15,"contentHtml":30,"cover":31,"author":32,"views":19,"readingTime":33,"status":34,"publishedAt":35,"seo":36,"tags":41,"qaPairs":42,"meta":48,"updatedAt":49,"createdAt":50,"_status":51},270,"Penetration Basics: Minio Version Detection","penetration-basics-minio-version-detection","Discover Minio version detection methods, Python automation implementation details, and get open-source code for penetration testing basics. Covers API auth and version checks.",{"root":16},{"type":17,"format":18,"indent":19,"version":20,"children":21,"direction":29},"root","",0,1,[22],{"type":23,"format":18,"indent":19,"version":20,"children":24,"direction":29},"paragraph",[25],{"mode":26,"text":27,"type":28,"style":18,"detail":19,"format":19,"version":20},"normal","\u003Chtml>\u003Chead>\u003C\u002Fhead>\u003Cbody>\u003Cp>\u003Cstrong>Penetration Basics: Minio Version Detection\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Cstrong>0x00 Preface\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article will introduce methods for Minio version detection, implement automation via Python, record development details, and open-source the code.\u003C\u002Fp>\u003Cp>\u003Cstrong>0x01 Introduction\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article will cover the following content:\u003C\u002Fp>\u003Cp>Implementation Ideas\u003C\u002Fp>\u003Cp>Implementation Details\u003C\u002Fp>\u003Cp>Open-Source Code\u003C\u002Fp>\u003Cp>\u003Cstrong>0x02 Basic Knowledge\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>MinIO is a high-performance, distributed object storage system developed in the Go language. MinIO can be used as a cloud storage solution to store massive amounts of images, videos, and documents. Since it is implemented in Go, the server can run on Windows, Linux, OS X, and FreeBSD, and only requires a single executable file to run.\u003C\u002Fp>\u003Cp>For environment setup on Windows, refer to: https:\u002F\u002Fmin.io\u002Fdocs\u002Fminio\u002Fwindows\u002Findex.html\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Download\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Latest version: https:\u002F\u002Fdl.min.io\u002Fserver\u002Fminio\u002Frelease\u002Fwindows-amd64\u002Fminio.exe\u003C\u002Fp>\u003Cp>Historical versions: https:\u002F\u002Fdl.min.io\u002Fserver\u002Fminio\u002Frelease\u002Fwindows-amd64\u002Farchive\u002F\u003C\u002Fp>\u003Cp>After downloading a historical version, add the .exe file extension and run it directly.\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Start the service\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Command line parameters: minio.exe server C:\\\\minio --console-address :9090\u003C\u002Fp>\u003Cp>\u003Cstrong>3. Web access\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>URL address: http:\u002F\u002F127.0.0.1:9090\u003C\u002Fp>\u003Cp>Default username: minioadmin\u003C\u002Fp>\u003Cp>Default password: minioadmin\u003C\u002Fp>\u003Cp>\u003Cstrong>0x03 Implementation Approach\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Minio version detection requires logging into the Web backend\u003C\u002Fp>\u003Cp>Access location: Health page, as shown in the figure below\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397687087_0_4fc0bb3ec2.png\">\u003C\u002Fp>\u003Cp>From the page, you can see the current version as well as node and storage information\u003C\u002Fp>\u003Cp>In program implementation, we can analyze the authentication process by packet capture, and the details are as follows:\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Login\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Flogin\u003C\u002Fp>\u003Cp>Pass the authentication information in JSON format, and the details are as follows:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397694278_1_70d78bdda4.png\">\u003C\u002Fp>\u003Cp>After successful login, return status code 204, and add Cookie: token=xxxx in the Header as credentials\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Read version information\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fadmin\u002Finfo\u003C\u002Fp>\u003Cp>Requires Cookie: token=xxxx as credentials\u003C\u002Fp>\u003Cp>The return result is in JSON format, as shown in the figure below\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397700414_2_9e6cecb3cf.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>Supplement: Get the latest version of Minio\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fcheck-version\u003C\u002Fp>\u003Cp>\u003Cstrong>0x04 Implementation details\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Log in\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>A problem needs to be considered here: the case where the default port is modified\u003C\u002Fp>\u003Cp>When implementing automation with a program, port 9000 is usually used, but there are cases where the port is modified to 9001, and a small number of cases where it is modified to other uncommon ports\u003C\u002Fp>\u003Cp>If the port is incorrect, it will return status code 400, example of return content:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397704135_3_0ec4a5d40a.png\">\u003C\u002Fp>\u003Cp>Therefore, in program implementation, a check can be added here: when using the default port 9000, if a specific condition is returned, prompt a port error, then try port 9001, and if it fails again, prompt to modify the default port\u003C\u002Fp>\u003Cp>Complete example code:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397709255_4_279f404c9f.png\">\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397715638_5_cd4ec929a7.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Read version information\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>The return result is in JSON format, example result:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397721893_6_7b34f70762.png\">There are multiple servers here, so traversal is needed during parsing. The sample code is as follows:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fuploads\u002Fdocx_image_1769397728392_7_eee0cdac84.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>0x05 Open Source Code\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>The complete implementation code has been uploaded to GitHub, and the address is as follows: https:\u002F\u002Fgithub.com\u002F3gstudent\u002FHomework-of-Python\u002Fblob\u002Fmaster\u002FMinIO_GetVersion.py\u003C\u002Fp>\u003Cp>The code supports the following two commands:\u003C\u002Fp>\u003Cp>getversin: used to obtain version information\u003C\u002Fp>\u003Cp>getinfo: used to obtain complete information\u003C\u002Fp>\u003Cp>\u003Cstrong>0x06 Summary\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article introduces the method of MinIO version detection, and combined with real-world environments, it explains the details of Python-based development and provides the open source code.\u003C\u002Fp>\u003C\u002Fbody>\u003C\u002Fhtml>","text","ltr","\u003Chtml>\u003Chead>\u003C\u002Fhead>\u003Cbody>\u003Cp>\u003Cstrong>Penetration Basics: Minio Version Detection\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Cstrong>0x00 Preface\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article will introduce methods for Minio version detection, implement automation via Python, record development details, and open-source the code.\u003C\u002Fp>\u003Cp>\u003Cstrong>0x01 Introduction\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article will cover the following content:\u003C\u002Fp>\u003Cp>Implementation Ideas\u003C\u002Fp>\u003Cp>Implementation Details\u003C\u002Fp>\u003Cp>Open-Source Code\u003C\u002Fp>\u003Cp>\u003Cstrong>0x02 Basic Knowledge\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>MinIO is a high-performance, distributed object storage system developed in the Go language. MinIO can be used as a cloud storage solution to store massive amounts of images, videos, and documents. Since it is implemented in Go, the server can run on Windows, Linux, OS X, and FreeBSD, and only requires a single executable file to run.\u003C\u002Fp>\u003Cp>For environment setup on Windows, refer to: https:\u002F\u002Fmin.io\u002Fdocs\u002Fminio\u002Fwindows\u002Findex.html\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Download\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Latest version: https:\u002F\u002Fdl.min.io\u002Fserver\u002Fminio\u002Frelease\u002Fwindows-amd64\u002Fminio.exe\u003C\u002Fp>\u003Cp>Historical versions: https:\u002F\u002Fdl.min.io\u002Fserver\u002Fminio\u002Frelease\u002Fwindows-amd64\u002Farchive\u002F\u003C\u002Fp>\u003Cp>After downloading a historical version, add the .exe file extension and run it directly.\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Start the service\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Command line parameters: minio.exe server C:\\\\minio --console-address :9090\u003C\u002Fp>\u003Cp>\u003Cstrong>3. Web access\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>URL address: http:\u002F\u002F127.0.0.1:9090\u003C\u002Fp>\u003Cp>Default username: minioadmin\u003C\u002Fp>\u003Cp>Default password: minioadmin\u003C\u002Fp>\u003Cp>\u003Cstrong>0x03 Implementation Approach\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Minio version detection requires logging into the Web backend\u003C\u002Fp>\u003Cp>Access location: Health page, as shown in the figure below\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397687087_0_4fc0bb3ec2-1.png\">\u003C\u002Fp>\u003Cp>From the page, you can see the current version as well as node and storage information\u003C\u002Fp>\u003Cp>In program implementation, we can analyze the authentication process by packet capture, and the details are as follows:\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Login\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Flogin\u003C\u002Fp>\u003Cp>Pass the authentication information in JSON format, and the details are as follows:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397694278_1_70d78bdda4-1.png\">\u003C\u002Fp>\u003Cp>After successful login, return status code 204, and add Cookie: token=xxxx in the Header as credentials\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Read version information\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fadmin\u002Finfo\u003C\u002Fp>\u003Cp>Requires Cookie: token=xxxx as credentials\u003C\u002Fp>\u003Cp>The return result is in JSON format, as shown in the figure below\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397700414_2_9e6cecb3cf-1.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>Supplement: Get the latest version of Minio\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Access address: http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fcheck-version\u003C\u002Fp>\u003Cp>\u003Cstrong>0x04 Implementation details\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Log in\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>A problem needs to be considered here: the case where the default port is modified\u003C\u002Fp>\u003Cp>When implementing automation with a program, port 9000 is usually used, but there are cases where the port is modified to 9001, and a small number of cases where it is modified to other uncommon ports\u003C\u002Fp>\u003Cp>If the port is incorrect, it will return status code 400, example of return content:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397704135_3_0ec4a5d40a-1.png\">\u003C\u002Fp>\u003Cp>Therefore, in program implementation, a check can be added here: when using the default port 9000, if a specific condition is returned, prompt a port error, then try port 9001, and if it fails again, prompt to modify the default port\u003C\u002Fp>\u003Cp>Complete example code:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397709255_4_279f404c9f-1.png\">\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397715638_5_cd4ec929a7-1.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>2. Read version information\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>The return result is in JSON format, example result:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397721893_6_7b34f70762-1.png\">There are multiple servers here, so traversal is needed during parsing. The sample code is as follows:\u003C\u002Fp>\u003Cp>\u003Cimg alt=\"【技术原创】渗透基础——Minio版本探测\" src=\"\u002Fapi\u002Fmedia\u002Ffile\u002Fdocx_image_1769397728392_7_eee0cdac84-1.png\">\u003C\u002Fp>\u003Cp>\u003Cstrong>0x05 Open Source Code\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>The complete implementation code has been uploaded to GitHub, and the address is as follows: https:\u002F\u002Fgithub.com\u002F3gstudent\u002FHomework-of-Python\u002Fblob\u002Fmaster\u002FMinIO_GetVersion.py\u003C\u002Fp>\u003Cp>The code supports the following two commands:\u003C\u002Fp>\u003Cp>getversin: used to obtain version information\u003C\u002Fp>\u003Cp>getinfo: used to obtain complete information\u003C\u002Fp>\u003Cp>\u003Cstrong>0x06 Summary\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>This article introduces the method of MinIO version detection, and combined with real-world environments, it explains the details of Python-based development and provides the open source code.\u003C\u002Fp>\u003C\u002Fbody>\u003C\u002Fhtml>",180,"Onedaysec",3,"published","2026-02-02T07:25:19.984Z",{"title":37,"description":14,"keywords":38,"ogImage":39,"canonicalUrl":39,"noIndex":40},"Minio Version Detection: Penetration Basics & Python Automation","Minio version detection, penetration basics, Minio, Python automation, open-source code, Minio admin API, Minio authentication, Minio security",null,false,[],{"docs":43,"hasNextPage":40},[44,45,4,46,47],1111,1110,1108,1107,{"title":39,"description":39,"image":39},"2026-07-24T15:37:09.548Z","2026-07-23T16:02:32.269Z","draft","2026-07-23T16:16:44.355Z"]