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 पर टोकन स्ट्रिप

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-csrf-sql

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

phpmyadmin-csrf-sql

Class: CSRF Reach: Remote

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

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

IDअभी तक कोई CVE नहीं
ClassCSRF
ReachRemote। डिफ़ॉल्ट CookieSameSite=Strict कई cross-site browsers को रोकता है। Same-site / Lax / None / HTTP-auth शेष हैं।
CWECWE-352
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
ProductphpMyAdmin
Affected5.2.3 tag RELEASE_5_2_3 (962857e)
AuthVictim phpMyAdmin session cookie (या HTTP auth)। कोई valid CSRF token नहीं।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:19240

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

कोई भी जो victim browser को ajax_request के बिना phpMyAdmin पर POST करा सकता है, उस MySQL user के रूप में SQL चला सकता है।

PrivilegeMethod / pathLab-proven या inferred
Victim MySQL account के रूप में attacker SQL चलाएँ (उस SQL box की integrity + recon)POST index.php?route=/sql sql_query=... db=... no token, no ajax_requestLab-proven। Results body में PMA-CSRF-SQL-WITNESS था। General log ने SELECT को appuser के रूप में दिखाया
AJAX पर उसी handler को रोकेंSame POST with ajax_request=1Lab-proven। Token mismatch। INSERT marker row अनुपस्थित। General log ने वह INSERT नहीं चलाया
उन handlers को छोड़ें जो केवल stripped $_POST पढ़ते हैंPOST /database/structure/drop-table without a tokenLab-proven। keepme अभी भी मौजूद
export (SaveDir), partition DROP/TRUNCATE, account lock, /config/set, pmadb create पर वही gapकोई भी handler जो strip के बाद PSR-7 body पढ़ता हैInferred। परीक्षण नहीं किया गया

इस lab पर बंद: unauthenticated PMA (पहले cookie login आवश्यक), AJAX routes (वे mismatch पर exit करते हैं), drop-table without a token, OS shell। डिफ़ॉल्ट Strict SameSite का मतलब है कि एक classic cross-site form अक्सर cookie नहीं भेजेगा; शेष अभी भी same-site और Lax/None deploys पर एक विफल CSRF जाँच है।

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

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

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

Lab

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

या

cd lab
./run.sh

केवल loopback: http://127.0.0.1:19240। Images phpmyadmin:5.2.3 और mysql:8.0। Compose project phpmyadmin-csrf-sql। PoC एक same-site loopback POST है (Strict SameSite अभी भी cookie भेजता है)। Witness PMA-CSRF-SQL-WITNESS।

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

समाधान

Mismatch पर, request को खाली body से बदलें, या सभी POSTs को अस्वीकार करें, केवल AJAX को नहीं। stale request से sql_query कॉपी न करें। logout की तरह fail closed करें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin tag RELEASE_5_2_3 (962857e)
  • libraries/classes/Common.php token strip से पहले request snapshot
  • Sanitize::removeRequestVars केवल $_POST/$_GET साफ़ करता है
  • SqlController global $sql_query
  • Same pin leftovers: phpmyadmin-webauthn · phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate
  • CWE-352

License

GNU Affero GPL v3.0। देखें LICENSE। केवल loopback lab। कोई warranty नहीं।

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