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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
nextcloud-webhook-tokenneeded — Nextcloud 35.0.0 — प्रतिनिधिक Webhooks एडमिन webhook update tokenNeeded के माध्यम से 1h एडमिन ऐप पासवर्ड बना सकता है | Kitploit
उपकरण/GitHubGitHub/abraxas/nextcloud-webhook-tokenneeded
प्रमाणीकरण और प्राधिकरणविशेषाधिकार वृद्धिपहचान प्रबंधनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubabraxas/nextcloud-webhook-tokenneeded

nextcloud-webhook-tokenneeded

Nextcloud 35.0.0 — प्रतिनिधिक Webhooks एडमिन webhook update tokenNeeded के माध्यम से 1h एडमिन ऐप पासवर्ड बना सकता है

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

Abraxas Labs - nextcloud-webhook-tokenneeded

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  nextcloud-webhook-tokenneeded

राइट-अप: https://abraxaslabs.tech/research/nextcloud-webhook-tokenneeded

nextcloud-webhook-tokenneeded

Nextcloud Server 35.0.0 - Nextcloud GmbH

WebhooksController::create() tokenNeeded को null कर देता है, जब तक कि कॉलर पूर्ण इंस्टेंस एडमिन न हो। update() ऐसा नहीं करता। एक प्रत्यायोजित Webhooks सेटिंग्स एडमिन (admin में नहीं) किसी मौजूदा webhook पर tokenNeeded.user_ids: ["admin"] संग्रहीत कर सकता है, और फिर जब इवेंट ट्रिगर होता है, तो उस uid के लिए एक घंटे का बिना-स्कोप वाला PERMANENT_TOKEN ऐप पासवर्ड प्राप्त कर सकता है।

एक दुर्भावनापूर्ण व्यक्ति, जिसे केवल webhooks प्रबंधित करने का भरोसा दिया गया था, एक घंटे के लिए admin (या उनके द्वारा नामित किसी भी उपयोगकर्ता) के रूप में लॉग इन कर सकता है, 2FA को छोड़ सकता है, और उस व्यक्ति की फ़ाइलें पढ़ या अधिलेखित कर सकता है।

IDअभी तक कोई CVE नहीं
CWECWE-863, CWE-269
CVSSउच्च: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
उत्पादNextcloud Server
प्रभावित35.0.0 (da02f41) आधिकारिक nextcloud:35.0.0-apache
प्रमाणीकरणप्रत्यायोजित Webhooks सेटिंग्स एडमिन (IDelegatedSettings)
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

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

आपने किसी को Webhooks सेटिंग्स का काम दिया। वे admin समूह में नहीं हैं। Nextcloud फिर भी उन्हें एक मौजूदा webhook को इस तरह संपादित करने देता है कि अगले मिलते-जुलते इवेंट पर, सर्वर उन्हें उनके द्वारा सूचीबद्ध किसी भी uid के लिए एक घंटे का लॉगिन मेल कर देता है, जिसमें admin भी शामिल है।

उस लॉगिन के साथ वे यह कर सकते हैं:

  • उस व्यक्ति की सभी फ़ाइलें खोलना (केवल वह चीज़ नहीं जिसे webhook को देखना था)
  • उन फ़ाइलों को डाउनलोड और अधिलेखित करना
  • Files / WebDAV को उस व्यक्ति के रूप में उपयोग करना
  • 2FA छोड़ना (यह एक ऐप पासवर्ड है, पासवर्ड प्रॉम्प्ट नहीं)

उन्हें होस्ट पर PHP शेल की आवश्यकता नहीं है। उन्हें पूर्ण इंस्टेंस एडमिन होने की आवश्यकता नहीं है। बिना किसी खाते वाला इंटरनेट पर कोई अजनबी ऐसा नहीं कर सकता। यह छिद्र वह स्टाफर है जिसे आपने पहले से webhooks के साथ भरोसा दिया था, जो उन लोगों का रूप धारण कर रहा है जिन पर आपने भरोसा नहीं किया।


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

WebhooksController #[AuthorizedAdminSetting(settings: Admin::class)] है। Admin IDelegatedSettings को लागू करता है। इसी तरह Nextcloud एक सेटिंग्स पैनल को उस समूह को सौंपता है जो admin नहीं है।

tokenNeeded सर्वर से अनुरोध करता है कि webhook फायर होने पर नामित uids के लिए प्रमाणीकरण टोकन संलग्न करे। TokenService::createEphemeralToken password = null के साथ IToken::PERMANENT_TOKEN बनाता है। ऐप पासवर्ड। 2FA पहले से पीछे है।

PR #60543 ने create को गेट किया: जब तक आप पूर्ण इंस्टेंस एडमिन नहीं हैं, tokenNeeded null कर दिया जाता है। मैंने प्रत्यायोजित उपयोगकर्ता hooker के रूप में tokenNeeded.user_ids: ["admin"] के साथ एक webhook बनाया। संग्रहीत tokenNeeded [] था। Create गेटेड है। एक मिनट के लिए यह एक पूर्ण पैच जैसा लगता है।

फिर मैंने वही बॉडी /webhooks/{id} पर POST किया। संग्रहीत user_ids ['admin'] था। update() ने कभी if की प्रतिलिपि नहीं बनाई।

hooker के रूप में एक फ़ाइल PUT करें ताकि NodeCreatedEvent फायर हो। Cron WebhookCall चलाता है। Catcher JSON में authentication.user_ids.admin.token है। एडमिन निजी साक्षी फ़ाइल का Bearer GET 200, X-User-Id: admin लौटाता है।

जिन तरीकों से यह बिना कुछ सिखाए विफल होता है: update 403 (कंट्रोलर पहले से create से मेल खाता है); create पहले से टोकन बना रहा है (#60543 बिल्ड पर नहीं); catcher में खाली authentication (cron ने टोकन नहीं बनाया); ExApp हेडर पथ (लैब उपयोगकर्ता प्रत्यायोजित hooker है)।


लैब

cd lab
./run.sh

केवल http://127.0.0.1:18320 (Nextcloud) और :18321 (catcher) को लक्षित करें।

SUCCESS NEXTCLOUD-WEBHOOK-TOKENNEEDED who=delegated-webhook-admin uid=admin NEXTCLOUD-WEBHOOK-TOKENNEEDED-WITNESS
  • lab/docker-compose.yml
  • lab/run.sh
  • lab/hook/Dockerfile

समाधान

create के isAdmin null-out को update() में कॉपी करें। जब तक यह शिप न हो, Webhooks सेटिंग्स को गैर-एडमिन समूहों को न सौंपें।


संदर्भ

  • github.com/nextcloud/server टैग v35.0.0 (da02f41)
  • निकटवर्ती create-only फ़िक्स: nextcloud/server#60543
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

लाइसेंस

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

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