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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mysql-jdv-definer-sqli — MySQL Community Server 26.7.0 - उच्च - JSON Duality DEFINER SQLi - NO_BACKSLASH_ESCAPES | Kitploit
उपकरण/GitHubGitHub/abraxas/mysql-jdv-definer-sqli
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगडेटाबेस सुरक्षालैब और अभ्यास
GitHubabraxas/mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

MySQL Community Server 26.7.0 - उच्च - JSON Duality DEFINER SQLi - NO_BACKSLASH_ESCAPES

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - mysql-jdv-definer-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

वर्ग: SQLi पहुँच: Remote

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

JSON Duality DML JSON स्ट्रिंग मानों को \escape_string_for_mysql` (केवल बैकस्लैश) के साथ जोड़ता है, और फिर व्यू DEFINER sctx में स्विच करने के बाद इन्वाकर \sql_mode` के तहत \parse_sql` निष्पादित करता है। \SET SESSION sql_mode='NO_BACKSLASH_ESCAPES'`कमांड`'`को SQL लिटरल को समाप्त करने के लिए उपयोग किया जाता है। एक JSON स्ट्रिंग जिसमें`'`होता है, एक सबक्वेरी या SET-लिस्ट को DEFINER के रूप में इंजेक्ट कर सकता है। लैब: व्यू पर केवल DML संचालन वाले इन्वाकर द्वारा`secret.s`को प्रक्षेपित`name`` कॉलम में पढ़ा जाता है।

डिफ़ॉल्ट CREATE VIEW DEFINER है। X Plugin पहले से ही उस मोड पर शाखा बनाता है। JDV ऐसा नहीं करता। यह फीचर-गेटेड है: इसे एक JSON Duality View की आवश्यकता होती है।

आईडीअभी तक कोई CVE नहीं
वर्गSQLi (DEFINER; RCE नहीं)
पहुँचRemote (प्रमाणित SQL; JSON Duality View पर DML की आवश्यकता है)
CWECWE-89
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
उत्पादMySQL Community Server mysqld
प्रभावित26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
प्रमाणीकरणप्रमाणित; JSON Duality View पर INSERT या UPDATE
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1। प्रक्षेपित $.name में गवाह।

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

एक \SQL SECURITY DEFINER` JSON Duality Viewपर DML संचालन नियंत्रित करें।`SET SESSION sql_mode='NO_BACKSLASH_ESCAPES'`चलाएं। एक स्ट्रिंग फ़ील्ड को UPDATE करें (जिसका JSON मान`'`धारण करता है, etag SELECT से प्राप्त करें)। उत्पन्न`_utf8mb4 '...'`लिटरल समाप्त हो जाता है। बयान का शेष भाग DEFINER के रूप में निष्पादित होता है। लैब`secret.s.note`को प्रक्षेपित`name`कॉलम में चुनता है।`secret.s`पर प्रत्यक्ष`SELECT`` 1142 (अनुमति अस्वीकृत) देता है।

उस sql_mode के बिना, समान JSON एक लिटरल नाम के रूप में संग्रहीत होता है। उद्धरण चिह्न डेटा ही रहता है।

मुझे यह कैसे मिला

समान 26.7.0 खोज। डिफ़ॉल्ट डेमन का अप्रकाशित Crit/High रिपोर्ट खाली था। JSON Duality DML अभी भी मानों को जोड़ता है।

sbuf.append("_utf8mb4 '");
escape_string_for_mysql(&my_charset_utf8mb4_bin, ...);
sbuf.append(1, '\'');

\create_sctx_guard` \run_substmt` से पहले \view_sctx` स्थापित करता है। इन्वाकर \sql_mode` वही है जो \parse_sql` देखता है।

गलत दिशाएँ: व्यू नाम और \AS` के बीच \SQL SECURITY DEFINER` 1064 (त्रुटि) देता है (डिफ़ॉल्ट पहले से ही DEFINER है)। वर्तमान पंक्ति के समान \name` को छोड़ दिया जाता है (`is_equal`); किसी अन्य मान के खिलाफ इंजेक्ट करें। Etag की आवश्यकता है।

लैब

cd lab
./run.sh

इमेज \mysql:26.7.0`। प्रकाशित \127.0.0.1:18640`। व्यू \app.dv` DEFINER \root`@`%` के साथ \app.t` पर। गुप्त जानकारी \secret.s` में है। पीड़ित के पास व्यू पर केवल SELECT/INSERT/UPDATE अनुमति है।

SUCCESS mysql-jdv-definer-sqli victim-secret=denied nbe-inject=yes view-has-witness=yes default-mode-inject=no dump=26.7.0 image=mysql:26.7.0 MYSQL-JDV-DEFINER-SQLI-WITNESS

समाधान

JDV DML स्ट्रिंग्स को उसी \NO_BACKSLASH_ESCAPES` शाखा के साथ एस्केप करें जिसे X Plugin पहले से ही रखता है (`escape_sql_quote` बनाम \escape_string_for_mysql`)। उत्पन्न INSERT/UPDATE को पैरामीटराइज़ करें। DEFINER sctx के तहत संयोजित मानों को \parse_sql` न करें।

संदर्भ

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • sql/json_duality_view/dml.cc append_json_dom / create_sctx_guard
  • सहयोगी पैकेट: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
टूल डाउनलोड करें