
इरादनात्मक रूप से असुरक्षित Python लैब जो असुरक्षित YAML डीसेरिएलाइज़ेशन को प्रदर्शित करती है जिससे कोड निष्पादन होता है, तीन कठिनाई स्तरों, एक्सप्लॉइट स्क्रिप्ट, संकेत, और एक पैच किए गए तुलना ऐप के साथ।
असुरक्षित YAML डीसेरियलाइज़ेशन कैसे कोड-निष्पादन पथ बन सकता है, यह सीखने के लिए एक जानबूझकर असुरक्षित, केवल-लोकल Python लैब। इसमें तीन कठिनाई स्तर, एक पैच किया गया तुलना ऐप, एक्सप्लॉइट स्क्रिप्ट, संकेत, राइट-अप, और एक छोटा स्कोरबोर्ड शामिल है।
सुरक्षा: इस प्रोजेक्ट को केवल एक डिस्पोज़ेबल लोकल मशीन या पृथक वर्चुअल एनवायरनमेंट पर चलाएँ। चैलेंज ऐप्स को सार्वजनिक नेटवर्क पर उजागर न करें।
| वेरिएंट | फोकस |
|---|
| Easy | सीधा असुरक्षित एंडपॉइंट और स्पष्ट एक्सप्लॉइट पथ |
| Medium | डिकॉय रूट और एक नकली सैनिटाइज़र |
| Hard | छिपा हुआ रूट, एन्कोडेड पेलोड, और मल्टी-स्टेज फ्लैग फ़्लो |
प्रोजेक्ट में ये भी शामिल हैं:
yaml.safe_load() तुलना के लिए patched_app.pypython3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
pytest -q
python3 challenge_runner.py start --variant easy
इच्छित चैलेंज फ़्लो के लिए वेरिएंट README फ़ाइलों का उपयोग करें। ऐप्स डिफ़ॉल्ट रूप से localhost पर बाइंड होते हैं और Docker की आवश्यकता नहीं होती।
असुरक्षित वेरिएंट जानबूझकर हमलावर-नियंत्रित इनपुट पर Python-ऑब्जेक्ट-सक्षम YAML लोडर का उपयोग करते हैं:
yaml.load(data, Loader=yaml.Loader)
तुलना कार्यान्वयन सुरक्षित लोडर का उपयोग करता है:
yaml.safe_load(data)
वास्तविक एप्लिकेशन में अविश्वसनीय YAML के लिए कभी भी yaml.Loader का उपयोग न करें। यह लैब केवल रक्षात्मक प्रशिक्षण और अधिकृत परीक्षण के लिए है।
MIT License के अंतर्गत जारी।