Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
phpmyadmin-setup-validate — phpMyAdmin 5.2.3 - उच्च - रिमोट - शेष - setup/validate अभी भी पहुँच योग्य | Kitploit
उपकरण/GitHubGitHub/abraxas/phpmyadmin-setup-validate
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/phpmyadmin-setup-validate

phpmyadmin-setup-validate

phpMyAdmin 5.2.3 - उच्च - रिमोट - शेष - setup/validate अभी भी पहुँच योग्य

रिपॉजिटरी देखें
67 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - phpmyadmin-setup-validate

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-setup-validate

राइट-अप: https://abraxaslabs.tech/research/phpmyadmin-setup-validate

phpmyadmin-setup-validate

वर्ग: SSRF पहुँच: रिमोट

phpMyAdmin 5.2.3 (टैग RELEASE_5_2_3, कमिट 962857e)। config.inc.php मौजूद होने पर setup/index.php मर जाता है। setup/validate.php नहीं मरता। यह अभी भी $isMinimumCommon के अंतर्गत लोड होता है, सार्वजनिक लॉगिन पेज से एक CSRF टोकन लेता है, और JSON values फ़ील्ड में दिए गए होस्ट, पोर्ट, उपयोगकर्ता और पासवर्ड के साथ Validator::testDBConnection -> mysqli_connect को कॉल करता है।

एक अनप्रमाणित क्लाइंट सत्र कुकी और टोकन प्राप्त करने के लिए / पर GET करता है, फिर अपनी पसंद के Servers/1/host और Servers/1/port के साथ setup/validate.php id=Server पर POST करता है। phpMyAdmin होस्ट उस पते पर एक TCP MySQL हैंडशेक खोलता है। यह MySQL प्रोटोकॉल पर SSRF है: आंतरिक 3306, किसी आंतरिक सर्वर के विरुद्ध क्रेडेंशियल स्टफिंग, टाइमिंग और mysqli त्रुटियों से एक पोर्ट ओरेकल। यह HTTP मेटाडेटा SSRF नहीं है जब तक कि उस पोर्ट पर कुछ MySQL न बोलता हो। hide_db एक उपयोगकर्ता रेगेक्स को preg_match में भी इंटरपोलेट करता है। मैंने इस लैब में उस ReDoS पथ को नहीं चलाया।

आधिकारिक phpmyadmin:5.2.3 इमेज setup/ को हटा देती है। यह अवशेष केवल तब लागू होता है जब वह डायरेक्टरी अभी भी वेब रूट में हो, जो कि इंस्टॉल के बाद आम अवशेष है। लैब setup/ को 5.2.3 टारबॉल से पुनर्स्थापित करता है ताकि पिन RELEASE_5_2_3 से मेल खाए।

PMASA-2016-44 / CVE-2016-6621 ने कुछ setup SSRF को कवर किया था। "कॉन्फ़िग मौजूद होने पर setup अक्षम करें" जाँच कभी भी validate.php / config.php पर लागू नहीं की गई।

IDअभी तक कोई CVE नहीं
वर्गSSRF (MySQL प्रोटोकॉल)
पहुँचरिमोट (अनप्रमाणित यदि setup/ अभी भी वेब-पहुँचयोग्य है)
CWECWE-918
CVSSउच्च: 7.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
उत्पादphpMyAdmin
प्रभावित5.2.3 टैग RELEASE_5_2_3 (962857e) जिसमें setup/ अभी भी डॉकरूट में है
प्रमाणीकरणअनप्रमाणित। सार्वजनिक लॉगिन पेज से CSRF टोकन। कोई MySQL लॉगिन नहीं।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1:19230

एक हमलावर क्या कर सकता है

जो भी कोई अवशेष setup/ ट्री तक पहुँच सकता है, वह phpMyAdmin होस्ट को अपनी पसंद के होस्ट और पोर्ट पर MySQL-प्रोटोकॉल TCP कनेक्शन खोलने के लिए बाध्य कर सकता है।

विशेषाधिकारविधि / पथलैब-प्रमाणित या अनुमानित
PMA होस्ट से हमलावर होस्ट:पोर्ट तक TCP खोलें (आउटबाउंड कनेक्ट की अखंडता; उस पोर्ट की रेकी)अनप्रमाणित POST /setup/validate.php id=Server जिसमें Servers/1/host + Servers/1/port और GET / से एक टोकनलैब-प्रमाणित। oracle:13306 पर ओरेकल ने PMA कंटेनर से PMA-SETUP-VALIDATE-WITNESS लॉग किया
पुष्टि करें कि setup UI बंद है जबकि validate चालू रहता हैGET /setup/index.phpलैब-प्रमाणित। बॉडी में "setup is disabled" / configuration already exists है
लॉगिन-पेज CSRF टोकन के बिना फेल-क्लोज़्डवही POST, बिना tokenलैब-प्रमाणित। शून्य ओरेकल हिट
mysqli त्रुटियों और टाइमिंग से पोर्ट / क्रेडेंशियल ओरेकलवही testDBConnectionअनुमानित। लैब बॉडी mysqli_connect(): (HY000/2006): MySQL server has gone away थी, ओरेकल के स्वीकार करने और फिर बंद करने के बाद
किसी आंतरिक 3306 से MySQL बोलें और पोस्ट किए गए उपयोगकर्ता/पासवर्ड आज़माएँवही mysqli_connectअनुमानित। लैब db सेवा की ओर इंगित नहीं किया गया
उपयोगकर्ता रेगेक्स को इंटरपोलेट करने वाले validateRegex के माध्यम से ReDoSid=Servers/1/hide_dbअनुमानित। प्रयोग नहीं किया गया

इस लैब पर बंद: HTTP मेटाडेटा SSRF (हैंडशेक MySQL है, GET /latest/meta-data नहीं), अनऑथेंटिकेटेड PMA लॉगिन, OS शेल, और सेटअप विज़ार्ड स्वयं (index.php अक्षम रहता है)। यदि setup/ डिप्लॉय नहीं है (आधिकारिक इमेज डिफ़ॉल्ट) तो FAIL।

मैंने इसे कैसे खोजा

RELEASE_5_2_3 की आठ समानांतर स्रोत खोजें। setup/index.php में config-exists fatal है। setup/validate.php में नहीं है। setup/lib/common.inc.php $isMinimumCommon सेट करता है और CONFIG_FILE नहीं खोजता।

गलत मोड़: आधिकारिक इमेज को इस अवशेष के रूप में मानना (यह setup/ को हटा देती है); लॉगिन-पेज टोकन के बिना POST करना (शून्य oracle हिट); इसे HTTP मेटाडेटा SSRF मानना (हैंडशेक MySQL है)।

लैब

python3 phpmyadmin-setup-validate-Abraxas-Labs.py

या

cd lab
./run.sh

केवल लूपबैक: http://127.0.0.1:19230। Compose प्रोजेक्ट phpmyadmin-setup-validate। Dockerfile 5.2.3 tarball से setup/ को पुनर्स्थापित करता है और पोर्ट 13306 पर एक TCP oracle चलाता है। साक्षी PMA-SETUP-VALIDATE-WITNESS।

SUCCESS phpmyadmin-setup-validate how=live tcp=yes setup-index-disabled=yes PMA-SETUP-VALIDATE-WITNESS

समाधान

file_exists(CONFIG_FILE) को setup/lib/common.inc.php में घातक (fatal) बनाएं ताकि हर setup स्क्रिप्ट बंद हो जाए। testDBConnection होस्ट्स को प्रतिबंधित करें। उपयोगकर्ता स्ट्रिंग्स से preg_match डिलिमिटर न बनाएं।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e)
  • setup/index.php config-exists fatal
  • setup/validate.php में वह जाँच नहीं है
  • libraries/classes/Config/Validator.php testDBConnection / mysqli_connect
  • उसी पिन के अवशेष: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-csrf-sql
  • CWE-918

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

टूल डाउनलोड करें