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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
phpmyadmin-designer-json-sqli — phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - Designer JSON अनसैनिटाइज़्ड आइडेंटिफायर | Kitploit
उपकरण/GitHubGitHub/abraxas/phpmyadmin-designer-json-sqli
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगडेटाबेस सुरक्षालैब और अभ्यास
GitHubabraxas/phpmyadmin-designer-json-sqli

phpmyadmin-designer-json-sqli

phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - Designer JSON अनसैनिटाइज़्ड आइडेंटिफायर

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-designer-json-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-designer-json-sqli

राइट-अप: https://abraxaslabs.tech/research/phpmyadmin-designer-json-sqli

phpmyadmin-designer-json-sqli

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

phpMyAdmin 5.2.3 (टैग RELEASE_5_2_3, कमिट 962857e)। Designer AJAX save_setting_value सेटिंग्स ब्लॉब को json_encode करता है और उसे control-user लिंक पर सिंगल-कोटेड UPDATE/INSERT में जोड़ देता है। उपयोगकर्ता नाम एस्केप किया गया है। JSON नहीं। json_encode सिंगल कोट को एस्केप नहीं करता।

एक साइन-इन उपयोगकर्ता index.php?route=/database/designer पर operation=save_setting_value और value में एक कोट के साथ POST करता है। फिर queryAsControlUser उस स्ट्रिंग को pma control user के रूप में pma__designer_settings के विरुद्ध चलाता है। वह खाता कॉन्फ़िगरेशन स्टोरेज है, लॉग-इन किया गया SQL बॉक्स नहीं। phpMyAdmin 6.x इस ब्लॉब को ControlUser पर quoteString में लपेटता है। 5.2.3 अभी भी इसे कच्चा जोड़ता है।

पुराने designer CVEs (2016-6616, 2019-11768, 2019-18622) उपयोगकर्ता नाम / डेटाबेस नाम थे। यह बचा हुआ हिस्सा JSON settings_data कॉलम है।

IDअभी तक कोई CVE नहीं
वर्गSQLi (pma__designer_settings पर control-user)
पहुँचरिमोट (प्रमाणित कुकी लॉगिन; Designer + pma__designer_settings सक्षम)
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 (962857e)
प्रमाणीकरणप्रमाणित कुकी लॉगिन। Designer + pma__designer_settings सक्षम।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1:19220

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

एक साइन-इन phpMyAdmin उपयोगकर्ता जो Designer खोल सकता है, pma__designer_settings पर control user के रूप में SQL इंजेक्ट कर सकता है।

विशेषाधिकारविधि / पथलैब-प्रमाणित या अनुमानित
control-user UPDATE/INSERT स्ट्रिंग तोड़ें (pmadb SQL की अखंडता)POST index.php?route=/database/designer operation=save_setting_value value में एक कोट के साथलैब-प्रमाणित। सामान्य लॉग: SET settings_data = '{"snap_line":"PMA-DESIGNER-JSON-SQLI-WITNESS'#" }' कच्चा। quoteString अनुपस्थित
अपने settings_data को ट्रंकेट करें ताकि वह अब JSON न रहे (अपनी पंक्ति की अखंडता)वही POST; # बाकी स्टेटमेंट को कमेंट कर देता हैलैब-प्रमाणित। appuser ब्लॉब में witness है और वैध JSON नहीं है। साफ़ सेव grid-ok चला गया
स्टैक्ड क्वेरी के बिना अन्य उपयोगकर्ताओं की designer पंक्तियाँ ओवरराइट करें (पीड़ित पंक्ति की अखंडता)वही # WHERE username = '...' को कमेंट कर देता हैलैब-प्रमाणित। सीड victim {"keep":"safe"} ट्रंकेटेड witness ब्लॉब बन गया
control user के रूप में अतिरिक्त स्टेटमेंटवही सिंक यदि control mysqli लिंक मल्टी-क्वेरी की अनुमति देता हैअनुमानित। डिफ़ॉल्ट mysqli::query सिंगल-स्टेटमेंट है। यहाँ सक्षम नहीं
अन्य pmadb तालिकाओं तक पहुँचें (bookmarks, history, pma__userconfig)केवल तभी जब स्टैक्ड क्वेरी या राइट-स्टाइल ब्रेकआउट संभव होअनुमानित। इस लैब में control user के पास केवल phpmyadmin.* DML है

इस लैब पर बंद: अनप्रमाणित पहुँच, साइन-इन किया गया appuser SQL बॉक्स (केवल appdb; appuser के पास phpmyadmin पर कोई GRANT नहीं), OS शेल, और स्टैक्ड क्वेरी। यदि pmadb / designer settings बंद है तो सुविधा नो-ऑप हो जाती है (यह FAIL है, यह बचा हुआ हिस्सा नहीं)।

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

RELEASE_5_2_3 की आठ समानांतर स्रोत खोजें। saveSetting json_encode को '...' में जोड़ता है। उपयोगकर्ता नाम escapeString है। 6.x पहले से इस ब्लॉब को quoteString करता है। 5.2.3 नहीं करता।

गलत मोड़: username पर इंजेक्ट करना (यह escaped है); #1064 की अपेक्षा करना (# शेष को टिप्पणी बना देता है, इसलिए MySQL छोटा किया गया UPDATE स्वीकार कर लेता है); stacked queries को सिद्ध मानना (mysqli का डिफ़ॉल्ट single-statement है)।

Lab

python3 phpmyadmin-designer-json-sqli-Abraxas-Labs.py

या

cd lab
./run.sh

केवल लूपबैक: http://127.0.0.1:19220. इमेज phpmyadmin:5.2.3 और mysql:8.0. Compose प्रोजेक्ट phpmyadmin-designer-json-sqli. विटनेस PMA-DESIGNER-JSON-SQLI-WITNESS.

SUCCESS phpmyadmin-designer-json-sqli version=5.2.3 how=live raw-concat=yes truncated=true sql-error=false quoteString=no PMA-DESIGNER-JSON-SQLI-WITNESS

समाधान

JSON ब्लॉब पर quoteString(..., ControlUser) / escapeString, ठीक वैसे ही जैसे RecentFavoriteTable::saveToDb() और इस कॉलम पर phpMyAdmin 6.x करता है। json_encode के आउटपुट को सिंगल-कोटेड SQL लिटरल के अंदर न रखें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e)
  • libraries/classes/Database/Designer/Common.php saveSetting
  • Controllers/Database/DesignerController.php POST operation=save_setting_value
  • रूट GET|POST /database/designer
  • वही पिन अवशेष: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

लाइसेंस

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

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