
प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट CVE-2024-23724 के लिए: Ghost CMS में दुर्भावनापूर्ण SVG प्रोफाइल फोटो अपलोड के माध्यम से विशेषाधिकार वृद्धि। इसमें स्वचालित सेटअप और हमला स्क्रिप्ट शामिल है।
भेद्यता का परीक्षण करने के लिए, हमें दो खातों की आवश्यकता है: एक खाता जिसमें व्यवस्थापक (स्वामी) की भूमिका हो, और एक खाता जिसमें योगदानकर्ता की भूमिका हो। Ghost CMS में, पहले स्वामी खाता बनाने के लिए प्रशासन पैनल तक पहुँचना होता है, फिर उस खाते से एक योगदानकर्ता को आमंत्रित करना होता है ताकि वह अपना खाता बना सके। हालाँकि, Ghost में, योगदानकर्ता को आमंत्रित करने का एकमात्र तरीका ईमेल द्वारा आमंत्रण लिंक भेजना है, जिसके लिए योगदानकर्ता के खाते पर ईमेल भेजने के लिए एक ईमेल वितरण सेवा की आवश्यकता होती है। चीजों को आसान बनाने के लिए, हमने एक Mailgun खाता बनाया, Ghost में एक योगदानकर्ता जोड़ा, और फिर उस स्थिति में डेटाबेस का एक डंप फ़ाइल बनाया जिसमें हम थे। हमारे Docker Compose कॉन्फ़िगरेशन में, हम पहले Ghost शुरू करने से पहले डंप से डेटाबेस को पुनर्स्थापित करना सुनिश्चित करते हैं, ताकि इस भेद्यता का परीक्षण करने के लिए आपको ईमेल वितरण सेवा की आवश्यकता न हो। हालाँकि, यदि आप एक साफ स्थापना से शुरू करना चाहते हैं और प्रदान किए गए डेटाबेस डंप का उपयोग नहीं करना चाहते हैं, तो आप manual-setup फ़ोल्डर में Docker Compose का उपयोग करके एक साफ Ghost स्थापना शुरू कर सकते हैं। नीचे, आप Mailgun (एक ईमेल वितरण सेवा जिसका हमने उपयोग किया) को कॉन्फ़िगर करने और इसे Ghost के साथ काम करने के लिए चरण पाएंगे।
इस स्थापना के लिए, लॉगिन करने के लिए व्यवस्थापक और योगदानकर्ता के क्रेडेंशियल्स यहाँ दिए गए हैं:
शुरू करने के लिए, आपको एक Mailgun खाता बनाना होगा। एक बार आपका खाता बन जाने पर, अपने SMTP क्रेडेंशियल्स प्राप्त करें। अपने क्रेडेंशियल्स प्राप्त करने के बाद, उन्हें config.development.json फ़ाइल में उसी प्रारूप में रखें जैसा कि config.example.json फ़ाइल में दिखाया गया है।
यहाँ एक चरण-दर-चरण मार्गदर्शिका है:
config.example.json फ़ाइल की डुप्लिकेट बनाएँ और उसका नाम बदलकर config.development.json रखें।config.development.json फ़ाइल में भरें। यह सुनिश्चित करेगा कि आपका विकास वातावरण Mailgun के माध्यम से ईमेल भेजने के लिए सही ढंग से कॉन्फ़िगर किया गया है।आप निम्न कमांड का उपयोग करके अपनी चुनी हुई स्थापना शुरू कर सकते हैं:
docker-compose up
हमले का परीक्षण करने के लिए निम्न चरणों का पालन करें:
python generate-malicious-svg.py -u [USERNAME] -p [PASSWORD] -t http://localhost
स्वचालित स्थापना के लिए, कमांड है:
python generate-malicious-svg.py -u [email protected] -p ZtXfMq2FaRHGm@! -t http://localhost
यह कमांड वर्तमान निर्देशिका में tenant-takeover.svg नामक एक दुर्भावनापूर्ण SVG फ़ाइल उत्पन्न करता है।
अपने द्वारा बनाए गए योगदानकर्ता खाते के क्रेडेंशियल्स का उपयोग करके Ghost के प्रशासन इंटरफ़ेस में लॉगिन करें। ऐसा करने के लिए, http://localhost:3001/ghost पर जाएँ और योगदानकर्ता खाते के क्रेडेंशियल्स से लॉगिन करें।
स्क्रीन के निचले बाएँ कोने में अपनी प्रोफ़ाइल फ़ोटो पर क्लिक करके, फिर "Your profile" बटन पर क्लिक करके अपनी प्रोफ़ाइल संपादन पृष्ठ पर जाएँ।
अपनी प्रोफ़ाइल फ़ोटो बदलने के लिए प्रोफ़ाइल आइकन पर क्लिक करें। चरण 1 में उत्पन्न दुर्भावनापूर्ण SVG फ़ाइल चुनें।
"Save & close" बटन पर क्लिक करके परिवर्तन सहेजें। आप यह सत्यापित करने के लिए पृष्ठ को ताज़ा कर सकते हैं कि प्रोफ़ाइल फ़ोटो बदल गई है।
अब आप योगदानकर्ता खाते से लॉगआउट कर सकते हैं और व्यवस्थापक खाते में लॉगिन कर सकते हैं। http://localhost:3001/ghost/#/settings/staff?tab=contributors के अंतर्गत, आप देख सकते हैं कि योगदानकर्ता की प्रोफ़ाइल फ़ोटो बदल गई है। यदि आप प्रोफ़ाइल फ़ोटो पर राइट-क्लिक करते हैं और इसे एक नए टैब में खोलते हैं, तो यह हमले को ट्रिगर करेगा। अब आप http://localhost:3001/ghost/#/settings/staff पर वापस आ सकते हैं और आप देखेंगे कि योगदानकर्ता अब ब्लॉग का स्वामी है और आप एक व्यवस्थापक बन गए हैं।
हमने एक वीडियो बनाया है जो CVE को लागू करने के लिए आवश्यक पूरी प्रक्रिया और चरणों का विस्तार से वर्णन करता है। यह वीडियो हमारे दृष्टिकोण और किए गए कार्यों को बेहतर ढंग से समझने के लिए एक दृश्य मार्गदर्शिका के रूप में कार्य करता है।
वीडियो का लिंक: वीडियो देखने के लिए यहाँ क्लिक करें
परियोजना का पूर्ण अवलोकन और अनुसरण किए गए तकनीकी चरणों के लिए कृपया इस वीडियो को देखें।