CVE-2021-46080
एक्सप्लॉइट शीर्षक: वाहन सेवा प्रबंधन प्रणाली - 'मल्टीपल' क्रॉस-साइट रिक्वेस्ट फॉर्जरी (CSRF) संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) की ओर ले जाता है
एक्सप्लॉइट लेखक: SANU P.L
CVE: CVE-2021-46080
CVSS: 4.8 मध्यम
संदर्भ:
विवरण:
Vehicle Service Management System 1.0 में क्रॉस-साइट रिक्वेस्ट फॉर्जरी (CSRF) भेद्यता मौजूद है। एक सफल CSRF हमला संग्रहीत क्रॉस-साइट स्क्रिप्टिंग भेद्यता की ओर ले जाता है।
1. वाहन सेवा प्रबंधन प्रणाली - 'मैकेनिक सूची' (/admin/?page=mechanics)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में मैकेनिक सूची अनुभाग पर जाएँ और क्रिएट न्यू बटन पर क्लिक करें।
- फुल नेम इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- सेव बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में मैकेनिक सूची अनुभाग पर जाएँ।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
2. वाहन सेवा प्रबंधन प्रणाली - 'सेवा अनुरोध' (/admin/?page=service_requests)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में सेवा अनुरोध अनुभाग पर जाएँ और क्रिएट न्यू बटन पर क्लिक करें।
- स्वामी संपर्क इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- सेव रिक्वेस्ट बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में सेवा अनुरोध अनुभाग पर जाएँ।
- नव निर्मित सेवा अनुरोध चुनें और View के अंतर्गत Action पर क्लिक करें।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
3. वाहन सेवा प्रबंधन प्रणाली - 'श्रेणी सूची' (/admin/?page=maintenance/category)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में श्रेणी सूची अनुभाग पर जाएँ और क्रिएट न्यू बटन पर क्लिक करें।
- श्रेणी नाम इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- सेव बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में श्रेणी सूची अनुभाग पर जाएँ।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
4. वाहन सेवा प्रबंधन प्रणाली - 'सेवा सूची' (/admin/?page=maintenance/services)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में सेवा सूची अनुभाग पर जाएँ और क्रिएट न्यू बटन पर क्लिक करें।
- सेवा नाम इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- सेव बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में सेवा सूची अनुभाग पर जाएँ।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
5. वाहन सेवा प्रबंधन प्रणाली - 'उपयोगकर्ता सूची' (/admin/?page=user/list)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में उपयोगकर्ता सूची अनुभाग पर जाएँ और क्रिएट न्यू बटन पर क्लिक करें।
- प्रथम नाम इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- सेव बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में उपयोगकर्ता सूची अनुभाग पर जाएँ।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
6. वाहन सेवा प्रबंधन प्रणाली - 'सेटिंग्स' (/admin/?page=system_info)
एक्सप्लॉइट:
- एडमिन पैनल पर जाएँ http://localhost/vehicle_service/admin
- दो एडमिन खाते बनाएँ।
- ब्राउज़र A (Chrome) में एडमिन-1 खाते में लॉगिन करें।
- ब्राउज़र B (Firefox) में एडमिन-2 खाते में लॉगिन करें।
- एडमिन-1 खाते (Chrome) में सेटिंग्स अनुभाग पर जाएँ।
- सिस्टम नाम इनपुट फ़ील्ड में नीचे दिया गया पेलोड इंजेक्ट करें।
पेलोड:
"><script>alert(document.cookie)</script>
- अपडेट बटन पर क्लिक करें।
- बर्पसुइट में रिक्वेस्ट कैप्चर करें और CSRF HTML फ़ाइल जनरेट करें।
- CSRF HTML फ़ाइल सेव करें, उदा.: CSRF.html
- ब्राउज़र B (Firefox) में CSRF.html फ़ाइल ब्राउज़ करें।
- ब्राउज़र B (Firefox) में सेटिंग्स अनुभाग पर जाएँ।
- दुर्भावनापूर्ण जावास्क्रिप्ट कोड ट्रिगर हुआ।
प्रभाव:
कई एंडपॉइंट्स में क्रॉस-साइट रिक्वेस्ट फॉर्जरी भेद्यता मौजूद है, जो संग्रहीत क्रॉस-साइट स्क्रिप्टिंग भेद्यता की ओर ले जाती है।
शमन:
निम्नलिखित लागू करने की अनुशंसा की जाती है:
- सामान्य रूप से सत्र टोकन की तरह, उच्च एंट्रॉपी के साथ अप्रत्याशित।
- उपयोगकर्ता के सत्र से जुड़ा हुआ।
- प्रासंगिक कार्रवाई निष्पादित होने से पहले हर मामले में कड़ाई से मान्य किया गया।