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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
phpmyadmin-webauthn — phpMyAdmin 5.2.3 - उच्च - रिमोट - 2FA स्किप - WebAuthn सेरेमनी को छोड़ा जा सकता है | Kitploit
उपकरण/GitHubGitHub/abraxas/phpmyadmin-webauthn
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगप्रमाणीकरणलैब और अभ्यास
GitHubabraxas/phpmyadmin-webauthn

phpmyadmin-webauthn

phpMyAdmin 5.2.3 - उच्च - रिमोट - 2FA स्किप - WebAuthn सेरेमनी को छोड़ा जा सकता है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - phpmyadmin-webauthn

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

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

phpmyadmin-webauthn

वर्ग: 2FA बायपास पहुँच: रिमोट

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

संरचनात्मक जाँचें वास्तविक हैं: allowCredentials में credential id, clientData.type == webauthn.get, challenge सत्र से मेल खाता है, origin host, rpIdHash, user-present। हस्ताक्षर पार्स किया जाता है और अनदेखा किया जाता है। MySQL पासवर्ड के बाद, एक कचरा WebAuthn हस्ताक्षर जो अभी भी उन फ़ील्ड्स से मेल खाता है, एक पूर्ण phpMyAdmin सत्र है। वह डेटाबेस है। यदि आपने वास्तव में web-auth/webauthn-lib इंस्टॉल किया है, तो आप WebauthnLibServer पर हैं और यह बग नहीं है।

IDअभी तक कोई CVE नहीं
वर्ग2FA बायपास / हस्ताक्षर सत्यापन अनुपस्थित
पहुँचरिमोट (कुकी लॉगिन, फिर WebAuthn छोड़ा गया)
CWECWE-347, CWE-287
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। डिफ़ॉल्ट tarball / composer install --no-dev
प्रमाणीकरणकुकी लॉगिन (MySQL पासवर्ड), फिर WebAuthn छोड़ा गया
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1:18080

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

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

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

विशेषाधिकारविधि / पथलैब-प्रमाणित या अनुमानित
प्रमाणक के बिना पूर्ण WebAuthn 2FA (दूसरे कारक की अखंडता)पासवर्ड के बाद POST webauthn_request_response, कचरा हस्ताक्षरलैब-प्रमाणित। still_2fa=False landed=True
उस MySQL उपयोगकर्ता के रूप में पूर्ण PMA (अखंडता + SQL बॉक्स की जानकारी)वही सत्रलैब-प्रमाणित। होम UI मार्कर मौजूद
MySQL पासवर्ड छोड़ेंअप्रमाणित POSTलैब-प्रमाणित बंद। लॉगिन पर रहता है
web-auth/webauthn-lib इंस्टॉल होने पर वही बायपासWebauthnLibServerबंद। यह अवशेष नहीं
OS RCE / रिवर्स शेलयह अवशेषबंद

इस अवशेष पर बंद: अप्रमाणित PMA, होस्ट पर PHP शेल, और उस tarball को जिसने वास्तव में web-auth/webauthn-lib इंस्टॉल किया है, इस बग के रूप में मानना।

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

मैंने createServer पढ़ा, फिर parseAndValidateAssertionResponse, फिर वह यूनिट टेस्ट जो सार्वजनिक कुंजी पास नहीं करता। संरचनात्मक जाँचें वास्तविक हैं। हस्ताक्षर पार्स किया जाता है और अनदेखा किया जाता है।

गलत रास्ते: पूर्व पासवर्ड सत्र के बिना WebAuthn JSON POST करना; एक हस्ताक्षर जो संरचनात्मक जाँचों में विफल रहा; Webauthn\Server अभी भी मौजूद (गलत सर्वर क्लास); challenge इस सत्र से नहीं; origin host बेमेल; user-present फ़्लैग स्पष्ट; credential id allowCredentials में नहीं।

Dockerfile लैब 5.2.3 को कॉपी करता है, composer install --no-dev चलाता है, फिर vendor/web-auth को हटा देता है ताकि CustomServer ही उपयोग में हो। अंतिम php -r तब exit 1 करता है जब Webauthn\Server मौजूद हो। init.sql appuser के लिए बिना हार्डवेयर कुंजी के WebAuthn 2FA नामांकित करता है। PoC सिग्नेचर not-a-real-signature-PMA-WEBAUTHN-BYPASS को POST करता है।

लैब

Dockerfile के बगल में पिन को क्लोन करें, फिर चलाएँ:

cd lab
git clone --depth 1 --branch RELEASE_5_2_3 https://github.com/phpmyadmin/phpmyadmin.git src
./run.sh

या उस क्लोन के बाद पैक रूट से:

python3 phpmyadmin-webauthn-Abraxas-Labs.py

केवल लूपबैक: http://127.0.0.1:18080। Compose प्रोजेक्ट pma-webauthn-lab। RELEASE_5_2_3 पिन करें। src/ को शिप न करें। PMA-WEBAUTHN-BYPASS को साक्षी बनाएं।

SUCCESS PMA-WEBAUTHN-BYPASS WebAuthn 2FA accepted with garbage signature

समाधान

संग्रहीत COSE सार्वजनिक कुंजी के साथ authenticatorData || SHA-256(clientDataJSON) को सत्यापित करें; userHandle को बांधें; signCount को लागू करें। web-auth/webauthn-lib को एक वास्तविक निर्भरता बनाएं और CustomServer को हटा दें, या यदि लाइब्रेरी अनुपस्थित है तो विफल-बंद (fail closed) करें। तब तक, WebAuthn 2FA को अक्षम करें या इस phpMyAdmin को उजागर न करें।

संदर्भ

  • github.com/phpmyadmin/phpmyadmin टैग RELEASE_5_2_3
  • Plugins\TwoFactor\WebAuthn::createServer
  • CustomServer::parseAndValidateAssertionResponse
  • समान पिन के अवशेष: phpmyadmin-pmadb-central-sqli · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-347 · CWE-287

लाइसेंस

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

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