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

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-auth-plugin-unquoted

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

phpmyadmin-auth-plugin-unquoted

Class: SQLi Reach: Remote

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

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

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

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

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

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

PrivilegeMethod / sinkRecon / integrity / availabilityLab-proven या inferred
IDENTIFIED WITH में अतिरिक्त SQL भेजेंPOST index.php?route=/user-password के साथ authentication_pluginphpMyAdmin जो स्टेटमेंट बनाता है उसकी integrityLab-proven। Raw POST sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ SQL बॉक्स में unquoted दिखाई देता है
MySQL को उस अतिरिक्त SQL को SQL के रूप में parse करवाएंवही स्टेटमेंट mysqld तक पहुंचता हैउपयोगकर्ता कनेक्शन की integrityLab-proven। General log ने plugin sha256_password रखा और comment हटा दिया। 1227 क्योंकि इस उपयोगकर्ता के पास CREATE USER नहीं है
अतिरिक्त clauses या अतिरिक्त accounts यदि breakout parse हो जाएवही sink; stacked queries driver पर निर्भर करती हैंअन्य accounts की integrityInferred। यह lab दूसरा स्टेटमेंट नहीं चलाता या दूसरा account नहीं बनाता
add/edit user पर वही concatPrivileges.php IDENTIFIED WITH / MariaDB VIAgrantor-निर्मित स्टेटमेंट्स की integrityInferred sibling। Lab POST केवल change-password है

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

Same pin: WebAuthn CustomServer leftover.

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

मैंने phpmyadmin/phpmyadmin RELEASE_5_2_3 को pin किया। 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 को छोड़ देते हैं जब तक plugin नहीं बदला। एक अलग नाम POST करें और क्लॉज़ वापस आ जाता है।

पहले से दर्ज गलत मोड़: MySQL 1227 को leftover की विफलता मानना (यह प्रमाण है कि अतिरिक्त SQL parse हुआ); MySQL 8 पर GRANT-रहित plugin परिवर्तन का दावा करना; config-auth को in-scope मानना; एक reverse shell। Theatre।

Lab

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

लक्ष्य केवल http://127.0.0.1:19260। Images phpmyadmin:5.2.3 और mysql:8.0। Compose project phpmyadmin-auth-plugin-unquoted। रन के बाद stack tear down हो जाता है।

appuser के रूप में cookie लॉगिन। /user-password पर POST करें authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ के साथ। PMA SQL query box: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'। MySQL general log comment को parse करता है और IDENTIFIED WITH 'sha256_password' संग्रहीत करता है। Username quoted है।

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

समाधान

SHOW PLUGINS से plugin नामों को allowlist करें। POST को कभी भी IDENTIFIED WITH, VIA, या plugin= में interpolate न करें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • Same pin: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

लाइसेंस

GNU Affero GPL v3.0। देखें LICENSE। केवल Loopback lab। कोई वारंटी नहीं।

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