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

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

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

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

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

श्रेणियाँ

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

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - auth plugin identifier unquoted

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-auth-plugin-unquoted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-auth-plugin-unquoted

राइट-अप: https://abraxaslabs.tech/research/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

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

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

पासवर्ड बदलें डिफ़ॉल्ट रूप से चालू है। UserPassword.php POST authentication_plugin को ALTER USER ... IDENTIFIED WITH में कॉपी करता है, बिना किसी allowlist और बिना किसी quoting के। उसी स्टेटमेंट में उपयोगकर्ता नाम, होस्ट और पासवर्ड escapeString से गुज़रते हैं। MySQL 8 पर WITH क्लॉज़ तब उत्सर्जित होता है जब पोस्ट किया गया प्लगइन वर्तमान से भिन्न हो।

एक साइन-इन किया हुआ phpMyAdmin उपयोगकर्ता पासवर्ड बदलने के फ़ॉर्म के माध्यम से अपने ही ALTER USER में SQL इंजेक्ट करता है। प्लगइन फ़ील्ड में अतिरिक्त SQL, SQL है, प्लगइन नाम नहीं।

IDअभी तक कोई CVE नहीं
वर्गSQLi
पहुँचरिमोट (प्रमाणित कुकी लॉगिन; पासवर्ड बदलें चालू)
CWECWE-89
CVSSउच्च: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
उत्पादphpMyAdmin
प्रभावित5.2.3 टैग RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
प्रमाणीकरणप्रमाणित कुकी लॉगिन। $cfg['ShowChgPassword'] डिफ़ॉल्ट true। प्रमाणीकरण प्रकार config नहीं है
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

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

एक साइन-इन किया हुआ phpMyAdmin उपयोगकर्ता पासवर्ड बदलने के फ़ॉर्म के माध्यम से अपने ही ALTER USER में SQL इंजेक्ट कर सकता है।

विशेषाधिकारविधि / सिंकरेकॉन / अखंडता / उपलब्धतालैब-प्रमाणित या अनुमानित
IDENTIFIED WITH में अतिरिक्त SQL भेजेंauthentication_plugin के साथ POST index.php?route=/user-passwordphpMyAdmin जो स्टेटमेंट बनाता है उसकी अखंडतालैब-प्रमाणित। रॉ POST sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ SQL बॉक्स में बिना quote के दिखाई देता है
MySQL को उस अतिरिक्त SQL को SQL के रूप में पार्स करवाएँवही स्टेटमेंट mysqld तक पहुँचता हैउपयोगकर्ता कनेक्शन की अखंडतालैब-प्रमाणित। General log ने प्लगइन sha256_password रखा और कमेंट हटा दिया। 1227 क्योंकि इस उपयोगकर्ता के पास CREATE USER नहीं है
यदि ब्रेकआउट पार्स हो जाए तो अतिरिक्त क्लॉज़ या अतिरिक्त खातेवही सिंक; स्टैक्ड क्वेरी ड्राइवर पर निर्भर करती हैंअन्य खातों की अखंडताअनुमानित। यह लैब दूसरा स्टेटमेंट नहीं चलाती और न ही दूसरा खाता बनाती है
उपयोगकर्ता जोड़ें/संपादित करें पर वही concatPrivileges.php IDENTIFIED WITH / MariaDB VIAgrantor-निर्मित स्टेटमेंट की अखंडताअनुमानित सहोदर। लैब POST केवल पासवर्ड बदलें है

इस पथ पर बंद: बिना प्रमाणीकरण उपयोग (कुकी लॉगिन आवश्यक), config-auth (पासवर्ड बदलें छिपा हुआ है), RCE, MySQL 8 पर GRANT-रहित प्लगइन परिवर्तन सफल होना (CREATE USER के बिना 1227)। उपयोगकर्ता नाम, होस्ट और पासवर्ड escaped रहते हैं। स्वयं-पासवर्ड को GRANT की आवश्यकता नहीं; बचा हुआ हिस्सा बिना quote वाला प्लगइन फ़ील्ड है, मुफ़्त प्लगइन स्वैप नहीं।

वही पिन: WebAuthn CustomServer leftover।

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

मैंने phpmyadmin/phpmyadmin RELEASE_5_2_3 को पिन किया। PMASA-2025-1/2/3 पहले से ही 5.2.2 में हैं। पासवर्ड बदलें अभी भी बनाता है:

return 'ALTER USER \'' . $dbi->escapeString($username)
    . '\'@\'' . $dbi->escapeString($hostname)
    . '\' IDENTIFIED WITH ' . $authPlugin . ' BY '

$authPlugin $_POST['authentication_plugin'] है। MySQL 5.7.37+ और 8.0 WITH को छोड़ देते हैं जब तक कि प्लगइन न बदला जाए। कोई भिन्न नाम POST करें और वह खंड वापस आ जाता है।

पहले से दर्ज गलत मोड़: MySQL 1227 को शेष के विफलता के रूप में मानना (यह प्रमाण है कि अतिरिक्त SQL पार्स हुआ); MySQL 8 पर GRANT-रहित प्लगइन परिवर्तन का दावा करना; config-auth को दायरे में मानना; एक रिवर्स शेल। नाटक।

लैब

python3 phpmyadmin-auth-plugin-unquoted-Abraxas-Labs.py
# or: cd lab && ./run.sh

केवल http://127.0.0.1:19260 को लक्षित करें। इमेज phpmyadmin:5.2.3 और mysql:8.0। Compose प्रोजेक्ट phpmyadmin-auth-plugin-unquoted। रन के बाद स्टैक टियर डाउन हो जाता है।

appuser के रूप में कुकी लॉगिन। authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ के साथ POST /user-password। PMA SQL क्वेरी बॉक्स: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'। MySQL general log कमेंट को पार्स करता है और IDENTIFIED WITH 'sha256_password' संग्रहीत करता है। उपयोगकर्ता नाम उद्धृत है।

SUCCESS phpmyadmin-auth-plugin-unquoted how=live unquoted=yes escaped-user=yes plugin=sha256_password PMA-AUTH-PLUGIN-UNQUOTED-WITNESS

समाधान

SHOW PLUGINS से प्लगइन नामों को allowlist करें। POST को कभी भी IDENTIFIED WITH, VIA, या plugin= में इंटरपोलेट न करें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • वही पिन: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

लाइसेंस

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

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