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 अभी भी पहुँच योग्य

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-setup-validate

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

phpmyadmin-setup-validate

Class: SSRF Reach: Remote

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

एक unauthenticated क्लाइंट / पर GET करके एक session cookie और token प्राप्त करता है, फिर अपनी पसंद के Servers/1/host और Servers/1/port के साथ setup/validate.php id=Server पर POST करता है। phpMyAdmin host उस पते पर एक TCP MySQL handshake खोलता है। यह MySQL प्रोटोकॉल पर SSRF है: आंतरिक 3306, किसी आंतरिक सर्वर के विरुद्ध credential stuffing, timing और mysqli errors से एक port oracle। यह HTTP metadata SSRF नहीं है जब तक कि उस port पर कुछ MySQL न बोलता हो। hide_db भी एक user regex को preg_match में interpolate करता है। मैंने इस lab में उस ReDoS पथ को नहीं चलाया।

आधिकारिक phpmyadmin:5.2.3 image setup/ को हटा देती है। यह leftover केवल तब लागू होता है जब वह directory अभी भी web root में हो, जो कि install के बाद आम leftover है। Lab setup/ को 5.2.3 tarball से restore करता है ताकि pin RELEASE_5_2_3 से मेल खाए।

PMASA-2016-44 / CVE-2016-6621 ने कुछ setup SSRF को कवर किया था। "disable setup when config exists" जाँच कभी validate.php / config.php पर लागू नहीं की गई।

IDअभी तक कोई CVE नहीं
ClassSSRF (MySQL प्रोटोकॉल)
ReachRemote (unauthenticated यदि setup/ अभी भी web-reachable है)
CWECWE-918
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
ProductphpMyAdmin
Affected5.2.3 tag RELEASE_5_2_3 (962857e) जिसमें setup/ अभी भी docroot में है
AuthUnauthenticated। सार्वजनिक लॉगिन पेज से CSRF token। कोई MySQL login नहीं।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:19230

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

कोई भी जो leftover setup/ tree तक पहुँच सकता है, वह phpMyAdmin host को अपनी पसंद के host और port पर एक MySQL-protocol TCP connection खोलने के लिए बाध्य कर सकता है।

PrivilegeMethod / pathLab-proven या inferred
PMA host से attacker host:port तक TCP खोलें (outbound connect की integrity; उस port की recon)Unauthenticated POST /setup/validate.php id=Server जिसमें Servers/1/host + Servers/1/port और GET / से एक token होLab-proven। oracle:13306 पर oracle ने PMA container से PMA-SETUP-VALIDATE-WITNESS लॉग किया
पुष्टि करें कि setup UI बंद है जबकि validate चालू रहता हैGET /setup/index.phpLab-proven। Body में "setup is disabled" / configuration already exists है
login-page CSRF token के बिना fail closedवही POST, बिना tokenLab-proven। शून्य oracle hits
mysqli errors और timing से port / credential oracleवही testDBConnectionInferred। Lab body mysqli_connect(): (HY000/2006): MySQL server has gone away था जब oracle ने accept करके बंद कर दिया
आंतरिक 3306 से MySQL बोलें और posted user/password आज़माएँवही mysqli_connectInferred। lab db service पर नहीं भेजा गया
validateRegex द्वारा user regex interpolate करके ReDoSid=Servers/1/hide_dbInferred। नहीं चलाया गया

इस lab पर बंद: HTTP metadata SSRF (handshake MySQL है, GET /latest/meta-data नहीं), unauthenticated PMA login, OS shell, और setup wizard स्वयं (index.php disabled रहता है)। FAIL यदि setup/ deploy नहीं है (आधिकारिक image default)।

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

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

गलत रास्ते: आधिकारिक image को इस leftover के रूप में मानना (यह setup/ को हटा देती है); login-page token के बिना POST करना (शून्य oracle hits); इसे HTTP metadata SSRF मानना (handshake MySQL है)।

Lab

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

या

cd lab
./run.sh

केवल loopback: http://127.0.0.1:19230। Compose project phpmyadmin-setup-validate। Dockerfile 5.2.3 tarball से setup/ को restore करता है और port 13306 पर एक TCP oracle चलाता है। Witness PMA-SETUP-VALIDATE-WITNESS।

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

समाधान

file_exists(CONFIG_FILE) fatal को setup/lib/common.inc.php में रखें ताकि हर setup script मर जाए। testDBConnection hosts को प्रतिबंधित करें। user strings से preg_match delimiters न बनाएँ।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin tag RELEASE_5_2_3 (962857e)
  • setup/index.php config-exists fatal
  • setup/validate.php में वह जाँच नहीं
  • libraries/classes/Config/Validator.php testDBConnection / mysqli_connect
  • वही pin leftovers: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-csrf-sql
  • CWE-918

License

GNU Affero GPL v3.0। देखें LICENSE। केवल loopback lab। कोई warranty नहीं।

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