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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2007-4559-lab — स्व-निहित डॉकर लैब जो CVE-2007-4559 (TarSlip) डायरेक्टरी ट्रैवर्सल को पायथन के tarfile मॉड्यूल के माध्यम से प्रदर्शित करता है। इसमें असुरक्षित और सुरक्षित APIs, पेलोड जनरेशन, और सुरक्षा शिक्षा के लिए एक इंटरैक्टिव डेमो स्क्रिप्ट शामिल है। | Kitploit
उपकरण/GitHubGitHub/jithinodattu/cve-2007-4559-lab
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणवेब एप्लिकेशन शोषणCTFआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHubjithinodattu/cve-2007-4559-lab

CVE-2007-4559-lab

स्व-निहित डॉकर लैब जो CVE-2007-4559 (TarSlip) डायरेक्टरी ट्रैवर्सल को पायथन के tarfile मॉड्यूल के माध्यम से प्रदर्शित करता है। इसमें असुरक्षित और सुरक्षित APIs, पेलोड जनरेशन, और सुरक्षा शिक्षा के लिए एक इंटरैक्टिव डेमो स्क्रिप्ट शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2007-4559 — TarSlip: 15-साल का डायरेक्टरी ट्रैवर्सल

केवल शैक्षिक उपयोग के लिए। यह लैब जानबूझकर आइसोलेटेड डॉकर कंटेनरों के अंदर फाइल सिस्टम की कमजोरियों का शोषण करती है। इसे संवेदनशील डेटा वाले किसी भी सिस्टम या प्रोडक्शन वातावरण में न चलाएं।

एक स्व-निहित डॉकर लैब जो CVE-2007-4559 — पायथन के tarfile मॉड्यूल में कुख्यात "TarSlip" भेद्यता — को एक ठोस, एंड-टू-एंड अटैक श्रृंखला के माध्यम से प्रदर्शित करता है:

  1. एक हमलावर क्राफ्टेड टारबॉल को एक फ़ाइल अपलोड API पर अपलोड करता है।
  2. extractall() आँख मूंदकर ../../../etc/passwd नामक एक टार प्रविष्टि को निष्कर्षण निर्देशिका के बाहर लिखता है, वास्तविक सिस्टम फ़ाइल को अधिलेखित करता है।
  3. लगाया गया पासवर्ड हमलावर को संरक्षित /admin एंडपॉइंट तक पहुंच प्रदान करता है।
  4. वही हमला फिर एक फिक्स्ड API के विरुद्ध चलाया जाता है — और कोड की एक पंक्ति से अवरुद्ध कर दिया जाता है।

भेद्यता

पायथन का tarfile.extractall() टार आर्काइव में प्रत्येक प्रविष्टि को ईमानदारी से पुन: उत्पन्न करता है, जिसमें वे प्रविष्टियाँ भी शामिल हैं जिनके नामों में ../ पथ ट्रैवर्सल अनुक्रम होते हैं। इसे कभी भी एक सुरक्षा सीमा के रूप में डिज़ाइन नहीं किया गया था।

tar entry name : ../../../etc/passwd
extraction dir : /shared/uploads/a1b2c3d4/

resolved path  : /shared/uploads/a1b2c3d4/../../../etc/passwd
               = /etc/passwd   ← system file overwritten
समयरेखा
2007पायथन सुरक्षा टीम को बग की सूचना दी गई
2007 – 2022"सुरक्षा मुद्दा नहीं" के रूप में चिह्नित — tarfile "इच्छित रूप से काम कर रहा है"
2022ट्रेलिक्स शोधकर्ता GitHub को स्कैन करते हैं और 350,000+ रेपो पाते हैं जो अविश्वसनीय इनपुट पर extractall() कॉल करते हैं
2022सार्वजनिक खुलासा। CVE-2007-4559 पुन: उभरता है। उद्योग-व्यापी हड़बड़ी।
2023PEP 706 पायथन 3.12 में filter='data' शिप करता है — फिक्स एक एकल तर्क है

डेमो क्या दिखाता है

डेमो तीन चरणों में चलता है, प्रत्येक को आगे बढ़ने के लिए एक कीप्रेस की आवश्यकता होती है।

चरण 1 — आधार रेखा (Baseline)

  • GET /admin → 401। एडमिन एंडपॉइंट मौजूद है और संरक्षित है। हमलावर को पासवर्ड नहीं पता है।
  • innocent.tar.gz अपलोड करें → फ़ाइलें सैंडबॉक्स निर्देशिका के अंदर लैंड करती हैं। सब कुछ सामान्य दिखता है।

चरण 2 — हमला (Exploit)

हमलावर tarslip_passwd.tar.gz क्राफ्ट करता है
  └─ entry: "../../../etc/passwd"
       content: admin:hacked:1001:...   ← planted password
            │
            ▼
  POST /upload  (multipart file upload)
            │
            ▼
  extractall("/shared/uploads/{uuid}/")
  resolves "../../../etc/passwd" → /etc/passwd   ← CVE-2007-4559
            │
            ▼
  GET /admin   Authorization: Basic admin:hacked
            │
            ▼
  HTTP 200 — "Welcome, admin! You have full admin access."
  flag: CVE-2007-4559{tarslip_passwd_overwrite_to_admin_rce}

एक HTTP POST। कोई शेल नहीं। कोई RCE पेलोड नहीं। सिर्फ एक टार फ़ाइल।

चरण 3 — फिक्स (Fix)

वही टारबॉल फिक्स्ड API पर अपलोड की जाती है, जो extractall() में filter='data' पास करती है। पायथन tarfile.OutsideDestinationError उठाता है — ट्रैवर्सल अवरुद्ध हो जाता है, /etc/passwd अछूता रहता है, और /admin लॉक रहता है।

# Vulnerable — default before Python 3.14
tar.extractall(extraction_dir)

# Fixed — PEP 706 (Python 3.12+)
tar.extractall(extraction_dir, filter='data')

एक तर्क। पंद्रह साल शिप करने में।


आर्किटेक्चर

एक आइसोलेटेड डॉकर ब्रिज नेटवर्क (tarslip-net) पर चार सेवाएँ। कुछ भी इंटरनेट तक नहीं पहुँचता।

┌─────────────────────────────────────────────────────────┐
│                    tarslip-net (bridge)                  │
│                                                          │
│  ┌─────────────────┐      ┌──────────────────────────┐  │
│  │  vulnerable-api │      │       file-server        │  │
│  │  python:3.11.3  │      │       nginx:alpine       │  │
│  │  port 8000      │      │       port 8080 (host)   │  │
│  │                 │      │                          │  │
│  │  POST /upload   │      │  /shared पर HTTP सेवा     │  │
│  │  GET  /admin    │      │  निकाली गई फ़ाइलें ब्राउज़ │  │
│  │  GET  /health   │      │  करता है                  │  │
│  └────────┬────────┘      └────────────┬─────────────┘  │
│           │  shared-storage volume     │                 │
│           └────────────────────────────┘                 │
│                                                          │
│  ┌─────────────────┐                                     │
│  │    attacker     │                                     │
│  │  python:3.12    │  (कोई होस्ट पोर्ट नहीं — केवल आंतरिक) │
│  │                 │                                     │
│  │  craft_malicious.py  — टारबॉल जनरेट करता है            │
│  │  demo.py             — डेमो चलाता है                  │
│  └─────────────────┘                                     │
└─────────────────────────────────────────────────────────┘
सेवाछविभूमिकाहोस्ट पोर्ट
vulnerable-apipython:3.11.3-slimFlask अपलोड API + /etc/passwd प्रमाणीकरण द्वारा संरक्षित /admin8000
fixed-apipython:3.12-slimसमान कोड + USE_SAFE_EXTRACTION=true8000
file-servernginx:alpineनिकाली गई फ़ाइलों की निर्देशिका सूची8080
attackerpython:3.12-slimपेलोड जनरेटर + डेमो ड्राइवर—

भेद्य और फिक्स्ड APIs समान स्रोत कोड का उपयोग करते हैं। एकमात्र अंतर फिक्स्ड कंटेनर पर USE_SAFE_EXTRACTION=true एनवायरनमेंट वेरिएबल है, जो एकल filter='data' तर्क को फ्लिप करता है।


रिपॉजिटरी लेआउट

CVE-2007-4559-lab/
├── run_demo.sh                      ← यहाँ से शुरू करें
├── docker-compose.vulnerable.yml
├── docker-compose.fixed.yml
├── vulnerable-api/
│   ├── app.py                       # Flask API: /upload + /admin + /health
│   ├── Dockerfile                   # /etc/passwd में admin:s3cr3t_Adm1nPass बीजित करता है
│   └── requirements.txt
├── file-server/
│   ├── Dockerfile
│   └── nginx.conf
└── attacker/
    ├── craft_malicious.py           # innocent.tar.gz + tarslip_passwd.tar.gz जनरेट करता है
    ├── demo.py                      # चार-मोड CLI ड्राइवर (craft/baseline/exploit/verify)
    ├── Dockerfile
    └── requirements.txt

आवश्यक शर्तें

  • डॉकर 20.10+ जिसमें Compose प्लगइन हो (docker compose version)
  • macOS / Linux — शेल स्क्रिप्ट bash का उपयोग करती है
  • आपके होस्ट पर पोर्ट 8000 और 8080 खाली हों

डेमो चलाना

git clone https://github.com/your-username/CVE-2007-4559-lab.git
cd CVE-2007-4559-lab
bash run_demo.sh

स्क्रिप्ट पूरी तरह से इंटरैक्टिव है। यह प्रत्येक चरण से पहले एक विवरण प्रिंट करती है और आगे बढ़ने के लिए Enter की प्रतीक्षा करती है। अनुसरण करने के लिए किसी पूर्व डॉकर ज्ञान की आवश्यकता नहीं है।

प्रत्येक विराम बिंदु क्या कवर करता है

विरामदिखाया गया विवरणEnter पर कार्रवाई
1CVE समयरेखा, तीन चरण क्या हैंभेद्य स्टैक बनाएं
2कंटेनर भूमिकाएँ, बीजित एडमिन पासवर्डपेलोड जनरेट करें
3प्रत्येक टारबॉल के अंदर क्या हैचरण 1 — आधार रेखा (Baseline)
4/admin 401 क्यों है, सामान्य निष्कर्षण कैसा दिखता हैचरण 2 — हमला (Exploit)
5सटीक ट्रैवर्सल गणित, क्या अधिलेखित होता हैफिक्स्ड स्टैक पर स्विच करें
6filter='data' क्या करता है और यह क्यों काम करता हैचरण 3 — सत्यापित करें (Verify)
7मुख्य निष्कर्ष + व्यापक ZipSlip पैटर्नटियरडाउन

अलग-अलग चरण चलाना

यदि आप मैन्युअल रूप से कदम उठाना चाहते हैं:

# भेद्य स्टैक
docker compose -f docker-compose.vulnerable.yml up --build -d
docker compose -f docker-compose.vulnerable.yml exec attacker python craft_malicious.py
docker compose -f docker-compose.vulnerable.yml exec attacker python demo.py baseline
docker compose -f docker-compose.vulnerable.yml exec attacker python demo.py exploit

# फिक्स्ड स्टैक
docker compose -f docker-compose.vulnerable.yml down
docker compose -f docker-compose.fixed.yml up --build -d
docker compose -f docker-compose.fixed.yml exec attacker python craft_malicious.py
docker compose -f docker-compose.fixed.yml exec attacker python demo.py verify
टूल डाउनलोड करें