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

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

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

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

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

श्रेणियाँ

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

phpmyadmin-csrf-sql

phpMyAdmin 5.2.3 - उच्च - रिमोट - CSRF - /sql पर टोकन स्ट्रिप

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-csrf-sql

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-csrf-sql

राइट-अप: https://abraxaslabs.tech/research/phpmyadmin-csrf-sql

phpmyadmin-csrf-sql

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

phpMyAdmin 5.2.3 (टैग RELEASE_5_2_3, कमिट 962857e)। Common.php checkTokenRequestParam से पहले globals से PSR-7 अनुरोध बनाता है। बेमेल होने पर, Sanitize::removeRequestVars $_POST और $_GET को साफ़ करता है, लेकिन उस स्नैपशॉट को नहीं। फिर $sql_query को $request->getParsedBodyParam('sql_query') से कॉपी किया जाता है। AJAX POST टोकन बेमेल पर रद्द हो जाते हैं। गैर-AJAX POST जारी रहते हैं। SqlController स्ट्रिप्ड $_POST['sql_query'] को प्राथमिकता देता है और अन्यथा global रखता है।

phpMyAdmin सत्र कुकी वाला एक पीड़ित पर्याप्त है। index.php?route=/sql पर sql_query के साथ POST करें, बिना वैध टोकन के, और ajax_request के बिना। SELECT उस MySQL उपयोगकर्ता के रूप में चलता है। 5.2.3 में डिफ़ॉल्ट CookieSameSite=Strict कई क्रॉस-साइट ब्राउज़रों को अवरुद्ध करता है। Same-site, Lax, None, या HTTP-auth अभी भी इसे हिट करते हैं। यह किसी भी तरह से एक टूटा हुआ CSRF नियंत्रण है।

IDअभी तक कोई CVE नहीं
वर्गCSRF
पहुँचरिमोट। डिफ़ॉल्ट CookieSameSite=Strict कई क्रॉस-साइट ब्राउज़रों को अवरुद्ध करता है। Same-site / Lax / None / HTTP-auth शेष हैं।
CWECWE-352
CVSSउच्च: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
उत्पादphpMyAdmin
प्रभावित5.2.3 टैग RELEASE_5_2_3 (962857e)
प्रमाणीकरणपीड़ित phpMyAdmin सत्र कुकी (या HTTP auth)। कोई वैध CSRF टोकन नहीं।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1:19240

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

कोई भी जो पीड़ित ब्राउज़र को ajax_request के बिना phpMyAdmin पर POST करने के लिए प्रेरित कर सकता है, वह उस MySQL उपयोगकर्ता के रूप में SQL चला सकता है।

विशेषाधिकारविधि / पथलैब-प्रमाणित या अनुमानित
पीड़ित MySQL खाते के रूप में हमलावर SQL चलाएँ (उस SQL बॉक्स की अखंडता + रेकॉन)POST index.php?route=/sql sql_query=... db=... बिना token, बिना ajax_requestलैब-प्रमाणित। परिणाम बॉडी में PMA-CSRF-SQL-WITNESS था। सामान्य लॉग ने SELECT को appuser के रूप में दिखाया
AJAX पर उसी हैंडलर को रद्द करेंवही POST ajax_request=1 के साथलैब-प्रमाणित। Token mismatch। INSERT मार्कर पंक्ति अनुपस्थित। सामान्य लॉग ने वह INSERT नहीं चलाया
उन हैंडलरों को छोड़ें जो केवल स्ट्रिप्ड $_POST पढ़ते हैंPOST /database/structure/drop-table बिना टोकन केलैब-प्रमाणित। keepme अभी भी मौजूद
export (SaveDir), partition DROP/TRUNCATE, account lock, /config/set, pmadb create पर वही अंतरालकोई भी हैंडलर जो स्ट्रिप के बाद PSR-7 बॉडी पढ़ता हैअनुमानित। परीक्षण नहीं किया गया

इस लैब पर बंद: अनप्रमाणित PMA (पहले कुकी लॉगिन आवश्यक), AJAX रूट (वे बेमेल पर बाहर निकल जाते हैं), बिना टोकन के drop-table, OS शेल। डिफ़ॉल्ट Strict SameSite का अर्थ है कि एक क्लासिक क्रॉस-साइट फ़ॉर्म अक्सर कुकी नहीं भेजेगा; शेष अभी भी same-site और Lax/None डिप्लॉय पर एक विफल CSRF जाँच है।

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

RELEASE_5_2_3 की आठ समानांतर स्रोत खोजें। Common.php checkTokenRequestParam() से पहले $request = createFromGlobals() बनाता है। बेमेल पर, Sanitize::removeRequestVars() केवल $_POST/$_GET साफ़ करता है। गैर-AJAX जारी रहता है। SqlController वैश्विक $sql_query का उपयोग करता है यदि $_POST खाली है। रूट GET|POST /sql।

गलत मोड़: AJAX /sql को बचा हुआ मानना (यह Token mismatch पर रद्द हो जाता है); drop-table को बचा हुआ मानना (वह हैंडलर केवल stripped $_POST पढ़ता है); default Strict SameSite को "CSRF बंद है" मानना (नियंत्रण अभी भी टूटा हुआ है; same-site / Lax / None शेष हैं)।

लैब

python3 phpmyadmin-csrf-sql-Abraxas-Labs.py

या

cd lab
./run.sh

केवल लूपबैक: http://127.0.0.1:19240। इमेज phpmyadmin:5.2.3 और mysql:8.0। Compose प्रोजेक्ट phpmyadmin-csrf-sql। PoC एक same-site लूपबैक POST है (Strict SameSite फिर भी कुकी भेजता है)। साक्षी PMA-CSRF-SQL-WITNESS।

SUCCESS phpmyadmin-csrf-sql sql-ran=yes ajax-abort=yes drop-held=yes PMA-CSRF-SQL-WITNESS

समाधान

बेमेल होने पर, अनुरोध को खाली बॉडी से बदलें, या सभी POST को अस्वीकार करें, केवल AJAX ही नहीं। किसी पुराने अनुरोध से sql_query की प्रतिलिपि न बनाएं। लॉगआउट की तरह फेल-क्लोज़्ड रहें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3 (962857e)
  • टोकन स्ट्रिप से पहले libraries/classes/Common.php अनुरोध स्नैपशॉट
  • Sanitize::removeRequestVars केवल $_POST/$_GET को साफ़ करता है
  • SqlController वैश्विक $sql_query
  • समान पिन के अवशेष: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate
  • CWE-352

लाइसेंस

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

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