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 अनसैनिटाइज़्ड आइडेंटिफायर

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-designer-json-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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 करता है और इसे कंट्रोल-यूजर लिंक पर एकल-कोट्स वाले UPDATE/INSERT में संयोजित करता है। उपयोगकर्ता नाम एस्केप किया जाता है। JSON नहीं होता। json_encode एकल उद्धरण को एस्केप नहीं करता।

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

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

पहचानअभी तक कोई CVE नहीं
वर्गSQLi (pma__designer_settings पर कंट्रोल-यूजर)
पहुँचरिमोट (प्रमाणीकृत कुकी लॉगिन; 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 only

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

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

अधिकारविधि / पथलैब-प्रमाणित या अनुमानित
कंट्रोल-यूजर 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 ब्लॉब में गवाह शामिल है और वैध JSON नहीं है। क्लीन सेव grid-ok गायब है
बिना स्टैक्ड क्वेरी के अन्य यूजर्स के डिज़ाइनर पंक्तियों को ओवरराइट करें (पीड़ित पंक्ति की अखंडता)वही # WHERE username = '...' को कमेंट आउट करता हैलैब-प्रमाणित। सीड victim {"keep":"safe"} काट गए गवाह ब्लॉब में बदल गया
कंट्रोल यूजर के रूप में अतिरिक्त स्टेटमेंटयदि कंट्रोल mysqli लिंक मल्टी-क्वेरी की अनुमति देता है तो वही सिंकअनुमानित। डिफ़ॉल्ट mysqli::query सिंगल-स्टेटमेंट है। यहाँ सक्षम नहीं है
अन्य pmadb टेबल्स तक पहुँच (बुकमार्क्स, इतिहास, pma__userconfig)केवल यदि स्टैक्ड क्वेरी या राइट-स्टाइल ब्रेकआउट संभव होअनुमानित। इस लैब में कंट्रोल यूजर के पास केवल phpmyadmin.* DML है

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

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

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

गलत मोड़: उपयोगकर्ता नाम पर इंजेक्ट करना (यह एस्केप किया गया है); #1064 की उम्मीद करना (# शेष को कमेंट आउट करता है, इसलिए MySQL काटे हुए UPDATE को स्वीकार करता है); स्टैक्ड क्वेरी को प्रमाणित मानना (mysqli डिफ़ॉल्ट सिंगल-स्टेटमेंट है)।

लैब

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

or

cd lab
./run.sh

केवल लूपबैक: http://127.0.0.1:19220। इमेज phpmyadmin:5.2.3 और mysql:8.0। कॉम्पोज प्रोजेक्ट 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
  • Route GET|POST /database/designer
  • समान पिं बचे हुए: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

लाइसेंस

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

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