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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/saina15/cve-2020-14343-lab
भेद्यता स्कैनरकंटेनर सुरक्षागतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणशोषणसुरक्षा वर्चुअलाइजेशनपेनिट्रेशन टेस्टिंगपेपर और शोधलर्निंग और शिक्षालैब और अभ्यास
GitHub
331 महीना पहलेअभी तक समीक्षित नहीं
saina15/cve-2020-14343-lab

cve-2020-14343-lab

PyYAML में CVE-2020-14343 के लिए नियंत्रित भेद्यता अनुसंधान और पुनरुत्पादन प्रयोगशाला

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

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

CVE-2020-14343 – PyYAML असुरक्षित YAML लोडिंग लैब

1. परियोजना अवलोकन

यह परियोजना एक नियंत्रित और पृथक Docker वातावरण में CVE-2020-14343 का प्रदर्शन करती है।

लैब में दो वातावरण हैं:

  • PyYAML 5.3.1 का उपयोग करने वाला एक असुरक्षित वातावरण
  • PyYAML 5.4 और yaml.safe_load() का उपयोग करने वाला एक पैच किया गया वातावरण

लैब पूर्ण भेद्यता जीवनचक्र का प्रदर्शन करती है:

  1. असुरक्षित एप्लिकेशन को तैनात करें।
  2. असुरक्षित PyYAML संस्करण की पहचान करें।
  3. एक नियंत्रित YAML पेलोड का उपयोग करके भेद्यता को पुनः उत्पन्न करें।
  4. एक स्वचालित स्क्रिप्ट का उपयोग करके असुरक्षित संस्करण का पता लगाएं।
  5. निश्चित संस्करण में अपग्रेड करें।
  6. पैच किए गए एप्लिकेशन के विरुद्ध उसी पेलोड का परीक्षण करें।
  7. सत्यापित करें कि दुर्भावनापूर्ण YAML अस्वीकार कर दिया गया है।

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

2. CVE जानकारी

गुणविवरण
CVECVE-2020-14343
उत्पादPyYAML
प्रभावित संस्करण5.4 से पहले के संस्करण
निश्चित संस्करण5.4
भेद्यता प्रकारअनुचित इनपुट सत्यापन (CWE-20)
गंभीरतागंभीर
आक्रमण सतहअसुरक्षित लोडिंग कार्यक्षमता का उपयोग करके संसाधित YAML इनपुट
CVSS9.3 (CVSS v4, GitHub Advisory)

मूल कारण

यह भेद्यता तब होती है जब अविश्वसनीय YAML इनपुट को असुरक्षित PyYAML लोडिंग कार्यक्षमता का उपयोग करके संसाधित किया जाता है।

5.4 से पहले के PyYAML संस्करणों ने विशेष रूप से तैयार किए गए YAML टैग की अनुमति दी, जिनमें Python-विशिष्ट टैग शामिल हैं जैसे:

!!python/object/new

जब FullLoader का उपयोग किया गया था तब ऑब्जेक्ट निर्माण कार्यक्षमता तक पहुँचने के लिए।

इसलिए एक दुर्भावनापूर्ण YAML दस्तावेज़ अनजाने Python कोड निष्पादन का कारण बन सकता है।

यह समस्या पहले की PyYAML कमजोरी के अपूर्ण फिक्स से संबंधित थी।

PyYAML 5.4 ने मनमाने Python टैग को UnsafeLoader में स्थानांतरित करके CVE-2020-14343 को ठीक किया।

अविश्वसनीय YAML को संसाधित करने वाले अनुप्रयोगों के लिए, यह लैब सुरक्षित लोडिंग दृष्टिकोण के रूप में yaml.safe_load() का भी उपयोग करती है।

3. लैब आर्किटेक्चर

लैब में दो पृथक Docker सेवाएँ हैं:

                         Host Machine
                              |
                 +------------+------------+
                 |                         |
                 v                         v
          Vulnerable App             Patched App
          localhost:5000             localhost:5001
                 |                         |
            PyYAML 5.3.1             PyYAML 5.4
            FullLoader               SafeLoader
                 |                         |
                 v                         v
          Payload executes          Payload rejected

सेवाएँ

सेवाहोस्ट पोर्टकंटेनर पोर्टPyYAMLउद्देश्य
vulnerable500050005.3.1असुरक्षित वातावरण
patched500150005.4उपचारित वातावरण

4. रिपॉज़िटरी संरचना

cve-2020-14343-lab/
├── vulnerable/
│   ├── app.py
│   ├── Dockerfile
│   └── requirements.txt
├── patched/
│   ├── app.py
│   ├── Dockerfile
│   └── requirements.txt
├── exploit/
│   └── reproduce.py
├── detection/
│   └── detect.py
├── screenshots/
│   ├── 01-docker-compose-running.png
│   ├── 02-vulnerable-detection.png
│   ├── 03-patched-detection.png
│   ├── 04a-vulnerable-request.png
│   ├── 04b-vulnerable-execution-log.png
│   └── 05-patched-exploit-blocked.png
├── blog/
│   └── CVE-2020-14343-Technical-Blog.pdf
├── docker-compose.yml
├── README.md
└── .gitignore

निर्देशिका विवरण

फ़ाइल/निर्देशिकाउद्देश्य
vulnerable/app.pyकमज़ोर YAML लोडिंग का उपयोग करने वाला Flask एप्लिकेशन
vulnerable/Dockerfileकमज़ोर Docker इमेज बनाता है
vulnerable/requirements.txtPyYAML को 5.3.1 पर पिन करता है
patched/app.pyसुरक्षित YAML लोडिंग का उपयोग करने वाला Flask एप्लिकेशन
patched/Dockerfileपैच की गई Docker इमेज बनाता है
patched/requirements.txtPyYAML को 5.4 पर पिन करता है
exploit/reproduce.pyनियंत्रित पेलोड का उपयोग करके कमज़ोरी को पुनः उत्पन्न करता है
detection/detect.pyDocker कंटेनर के अंदर PyYAML संस्करण की जाँच करता है
docker-compose.ymlदोनों वातावरणों को बनाता और चलाता है
screenshots/लैब के दौरान कैप्चर किए गए साक्ष्य शामिल हैं
blog/800–1200 शब्दों वाला तकनीकी ब्लॉग PDF शामिल है

5. पूर्वापेक्षाएँ

निम्नलिखित सॉफ़्टवेयर आवश्यक है:

  • Docker Desktop
  • Docker Compose
  • Python 3.x
  • Git

लैब शुरू करने से पहले Docker Desktop चल रहा होना चाहिए।

कमज़ोर एप्लिकेशन को जानबूझकर केवल Docker पोर्ट मैपिंग के माध्यम से स्थानीय मशीन पर ही उजागर किया गया है।

6. लैब सेटअप

चरण 1: लैब शुरू करें

प्रोजेक्ट रूट निर्देशिका से, चलाएँ:

docker compose up --build -d

चरण 2: कंटेनरों को सत्यापित करें

चलाएँ:

docker compose ps

दोनों सेवाओं को Up दिखाना चाहिए।

चरण 3: कमज़ोर एप्लिकेशन को सत्यापित करें

खोलें:

http://127.0.0.1:5000

No input content was provided in your message. Please send the Markdown chunk you would like translated, and I will return only the translated text.

{
  "message": "CVE-2020-14343 vulnerable YAML parser"
}

चरण 4: पैच किए गए एप्लिकेशन को सत्यापित करें

खोलें:

http://127.0.0.1:5001

No input content was provided in your message. Please send the Markdown chunk you would like translated, and I will return only the translated text.

{
  "message": "CVE-2020-14343 patched YAML parser"
}

7. लैब को शुरू करना, रोकना और पुनः बनाना

शुरू करें

docker compose up -d

रोकें

docker compose down

बनाएँ और शुरू करें

docker compose up --build -d

चल रही सेवाओं की जाँच करें

docker compose ps

कमज़ोर एप्लिकेशन लॉग देखें

docker logs cve-vulnerable

पैच किए गए एप्लिकेशन लॉग देखें

docker logs cve-patched

8. भेद्यता पुनरुत्पादन

भेद्य अनुप्रयोग एक /parse एंडपॉइंट प्रदान करता है जो YAML इनपुट स्वीकार करता है।

भेद्य वातावरण निम्नलिखित का उपयोग करता है:

  • PyYAML 5.3.1
  • yaml.FullLoader

पुनरुत्पादन स्क्रिप्ट यहाँ स्थित है:

exploit/reproduce.py

एक्सप्लॉइट चलाएँ

कमज़ोर एप्लिकेशन यहाँ उपलब्ध है:

http://127.0.0.1:5000/parse

चलाएँ:

python exploit/reproduce.py

स्क्रिप्ट एक नियंत्रित YAML पेलोड भेजती है जिसमें Python-विशिष्ट YAML टैग होता है।

अपेक्षित परिणाम

कमजोर वातावरण में, पेलोड स्वीकार किया जाता है और एप्लिकेशन HTTP 200 प्रतिक्रिया लौटाता है।

नियंत्रित परीक्षण मार्कर:

CVE-2020-14343-TEST

के अंदर निष्पादित किया जाता है।

docker logs cve-vulnerable

अपेक्षित लॉग आउटपुट में शामिल हैं:

CVE-2020-14343-TEST

यह कमज़ोर YAML लोडिंग व्यवहार के माध्यम से कोड निष्पादन को प्रदर्शित करता है।

सुरक्षा

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

9. भेद्यता का पता लगाना

पहचान स्क्रिप्ट यहाँ स्थित है:

detection/detect.py

स्क्रिप्ट निर्दिष्ट Docker कंटेनर के अंदर इंस्टॉल किए गए PyYAML संस्करण की जाँच करती है।

ठीक किया गया संस्करण यह है:

5.4

कमजोर वातावरण का पता लगाएं

चलाएं:

python detection/detect.py cve-vulnerable

अपेक्षित परिणाम:

PyYAML installed version: 5.3.1
Fixed version: 5.4
STATUS: VULNERABLE
Reason: PyYAML version is older than 5.4.

पैच किए गए वातावरण का पता लगाएँ

चलाएँ:

python detection/detect.py cve-patched

अपेक्षित परिणाम:

PyYAML installed version: 5.4
Fixed version: 5.4
STATUS: PATCHED
Reason: PyYAML version is 5.4 or newer.

डिटेक्शन लॉजिक

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