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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PMA-5.2.3-WebAuthn-2FA — phpMyAdmin - उच्च 8.1 - प्रमाणित POST /index.php - 2FA बायपास | Kitploit
उपकरण/GitHubGitHub/abraxas/pma-5.2.3-webauthn-2fa
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगप्रमाणीकरणलैब और अभ्यास
GitHubabraxas/pma-5.2.3-webauthn-2fa

PMA-5.2.3-WebAuthn-2FA

phpMyAdmin - उच्च 8.1 - प्रमाणित POST /index.php - 2FA बायपास

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - PMA-5.2.3-WebAuthn-2FA

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  PMA-5.2.3-WebAuthn-2FA

PMA-5.2.3-WebAuthn-2FA

phpMyAdmin 5.2.3 - phpMyAdmin

डिफ़ॉल्ट tarball। web-auth/webauthn-lib suggest / require-dev है। composer install --no-dev इसे इंस्टॉल नहीं करता। इसलिए createServer CustomServer का उपयोग करता है। वह क्लास response.signature को पार्स करती है (फ़ील्ड का मौजूद होना और डिकोड होना आवश्यक है) और इसे कभी COSE-verify नहीं करती। यह संग्रहीत credentialPublicKey का कभी उपयोग नहीं करती। उत्पाद का अपना CustomServerTest बिना किसी public key के एक assertion स्वीकार करता है।

MySQL पासवर्ड के बाद, एक कचरा WebAuthn signature जो अभी भी challenge, origin, rpIdHash और user-present से मेल खाता है, एक पूर्ण phpMyAdmin सत्र है। वही डेटाबेस है।

IDअभी तक कोई CVE नहीं
CWECWE-347, CWE-287
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProductphpMyAdmin
Affected5.2.3 डिफ़ॉल्ट tarball (web-auth/webauthn-lib अनुपस्थित)
AuthMySQL पासवर्ड, फिर WebAuthn छोड़ दिया गया
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

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

उन्हें अभी भी MySQL पासवर्ड चाहिए (cookie लॉगिन)। उस पासवर्ड के बाद, वे मेल खाते challenge, origin host, rpIdHash, user-present, नामांकित credential id और एक कचरा signature के साथ webauthn_request_response POST करते हैं। वे सामान्य UI में पहुँच जाते हैं। 2FA खत्म। यह डेटा पर RCE है, होस्ट पर PHP शेल नहीं।

यदि आपने वास्तव में web-auth/webauthn-lib इंस्टॉल किया है, तो आप WebauthnLibServer पर हैं और इस बग से प्रभावित नहीं हैं।

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

मैंने createServer पढ़ा, फिर parseAndValidateAssertionResponse, फिर वह यूनिट टेस्ट जो public key पास नहीं करता। संरचनात्मक जाँचें वास्तविक हैं: allowCredentials में credential id, clientData.type == webauthn.get, challenge सत्र से मेल खाता है, origin host, rpIdHash, user-present। Signature पार्स की जाती है और अनदेखी की जाती है।

पहला क्लाइंट जिसे मैंने इस पर इंगित किया, वह विनम्र था। उसने पूर्व पासवर्ड सत्र के बिना एक WebAuthn JSON POST किया। लॉगिन पेज। उसने route=/ के साथ एक signature POST किया जो संरचनात्मक जाँचों को भी पूरा नहीं करता था। आप 2FA पर ही रहते हैं। webauthn_request_response अभी भी HTML में है।

पहले से दर्ज गलत रास्ते: Webauthn\Server मौजूद (गलत सर्वर क्लास); challenge इस सत्र का नहीं; origin host बेमेल; user-present फ़्लैग स्पष्ट; credential id allowCredentials में नहीं; unauthenticated, कोई MySQL पासवर्ड नहीं; एक reverse shell। नाटक। संकेत है 2FA फ़ील्ड का गायब होना और एक phpMyAdmin नेविगेशन पेज।

क्लाइंट बग उत्पाद बग जैसे दिखते हैं। एक helper जो http.client को shadow करता है, कभी पैकेट नहीं भेजता। HTTPResponse पर .recv() .read() नहीं है। मैं यह एक बार बता रहा हूँ क्योंकि इसने समय बर्बाद किया और एक मिनट के लिए ऐसा लगा जैसे phpMyAdmin ठीक था।

फिर: username/password/token POST करें। 2FA पेज से सत्र challenge निकालें। नकली assertion POST करें। still_2fa=False landed=True। लैब Dockerfile 5.2.3 कॉपी करता है, composer install --no-dev, फिर vendor/web-auth को हटा देता है ताकि CustomServer ही खेल में हो। अंतिम php -r यदि Webauthn\Server मौजूद है तो 1 पर एक्ज़िट करता है। यदि लाइब्रेरी अभी भी मौजूद है तो इमेज को बिल्ड विफल करना चाहिए। init.sql हार्डवेयर कुंजी के बिना appuser के लिए WebAuthn 2FA नामांकित करता है।

लैब

cd lab
./run.sh

केवल http://127.0.0.1:18080 को लक्षित करें। पहले phpMyAdmin 5.2.3 को Dockerfile के बगल में src/ के रूप में रखें।

password-login status=200 webauthn=True
2fa-post status=200 still_2fa=False landed=True
SUCCESS PMA-WEBAUTHN-BYPASS WebAuthn 2FA accepted with garbage signature

समाधान

web-auth/webauthn-lib इंस्टॉल करें ताकि createServer इस लाइब्रेरी का उपयोग करे, या CustomServer में संग्रहीत सार्वजनिक कुंजी के विरुद्ध response.signature का वास्तविक COSE-सत्यापन करें। तब तक, WebAuthn 2FA अक्षम करें या इस phpMyAdmin को उजागर न करें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3
  • CustomServer::parseAndValidateAssertionResponse · WebAuthn::createServer · CustomServerTest
  • WebAuthn-3 verifying assertion
  • CWE-347 · CWE-287

लाइसेंस

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

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