
समय-आधारित ब्लाइंड SQL इंजेक्शन भेद्यता के लिए एक ऑनलाइन शॉपिंग सिस्टम में सलाहकार और प्रूफ-ऑफ-कॉन्सेप्ट, जिसमें तकनीकी विवरण, प्रभाव विश्लेषण और उपचारात्मक सिफारिशें शामिल हैं।
CVE: CVE-2025-52021
शीर्षक: edit_product.php में product_id पैरामीटर के माध्यम से टाइम-आधारित ब्लाइंड SQL इंजेक्शन
विक्रेता / रिपॉजिटरी: पुनीतरेड्डीएचसी — https://github.com/PuneethReddyHC/online-shopping-system-advanced
प्रभावित संस्करण: 1.0 (परीक्षण के समय ब्रांच/टैग master)
खोजकर्ता: हाफ़िज़ प्रदाना गेमिलांग
प्रकटीकरण स्थिति: विक्रेता को निजी रूप से सूचित किया गया। उपयोगकर्ता सुरक्षा के लिए पूर्ण एक्सप्लॉइट PoC को सार्वजनिक प्रकटीकरण से रोका गया।
ऑनलाइन शॉपिंग सिस्टम एडवांस्ड v1.0 के admin/admin/edit_product.php में एक टाइम-आधारित ब्लाइंड SQL इंजेक्शन भेद्यता पाई गई। product_id GET पैरामीटर को उचित सत्यापन या पैरामीटराइज़ेशन के बिना SQL क्वेरी में जोड़ा जाता है। एक हमलावर सर्वर प्रतिक्रिया विलंब का निरीक्षण करने और डेटाबेस व्यवहार का अनुमान लगाने के लिए समय-विलंब फ़ंक्शन (जैसे ) इंजेक्ट कर सकता है, जिससे एक दूरस्थ SQL इंजेक्शन बिंदु की पुष्टि होती है।
SLEEPनोट: यह सलाह जानबूझकर एक चलाने योग्य एक्सप्लॉइट पेलोड को शामिल नहीं करती है। प्रूफ-ऑफ-कॉन्सेप्ट विवरण उपचार की अनुमति देने के लिए रखरखावकर्ता के साथ निजी रूप से साझा किए गए हैं।
/admin/admin/edit_product.php?product_id=<value>
स्थानीय परीक्षण URL उदाहरण:
http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0
product_id (GET)admin/admin/edit_product.phpproduct_id पैरामीटर स्वीकार करना चाहिए और इसे बिना पैरामीटराइज़ेशन के SQL स्टेटमेंट में शामिल करना चाहिए।डेटाबेस SLEEP() सिमेंटिक्स का उपयोग करने वाले टाइमिंग-आधारित इंजेक्शन प्रयासों ने सफल इंजेक्शन के अनुरूप मापने योग्य सर्वर-साइड विलंब उत्पन्न किए:
SLEEP(6) → देखा गया प्रतिक्रिया विलंब ≈ 6.01sSLEEP(15) → देखा गया प्रतिक्रिया विलंब ≈ 15.00sSLEEP(0) → आधारभूत प्रतिक्रिया विलंब ≈ 0.01sये परिणाम एक ब्लाइंड SQL इंजेक्शन बिंदु का संकेत देते हैं जो समय-आधारित अनुमान की अनुमति देता है। परीक्षण के दौरान देखा गया डेटाबेस नाम: onlineshop।
इस भेद्यता का सफल शोषण हमलावरों को अनुमति देता है:
अनुमानित गंभीरता: उच्च
product_id पैरामीटर पर एक निर्मित अनुरोध भेजें जिसमें समय-विलंब SQL निर्माण शामिल हो (परीक्षण SLEEP() विविधताओं के साथ किया गया)।पूर्ण चरण-दर-चरण PoC सार्वजनिक सलाह से हटा दिया गया है — जिम्मेदार प्रकटीकरण शर्तों के तहत एन्क्रिप्टेड PoC के लिए रिपोर्टर से संपर्क करें।
$stmt = $pdo->prepare('SELECT * FROM products WHERE id = ?');
$stmt->execute([$product_id]);
product_id को पूर्णांक के रूप में मानें और तदनुसार मान्य करें (जैसे filter_input(INPUT_GET, 'product_id', FILTER_VALIDATE_INT)).DROP, ALTER, GRANT, या प्रशासनिक अधिकारों से बचें)।(विक्रेता/रखरखावकर्ता की सुविधा के लिए शामिल — PoC पेलोड सार्वजनिक रूप से प्रकाशित न करें)
sqlmap -u "http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0" --dbms=mysql --batch --level=5 --risk=3 --technique=T --time-sec=6
खोजकर्ता: हाफ़िज़ प्रदाना गेमिलांग
विक्रेता / रिपॉजिटरी: https://github.com/PuneethReddyHC/online-shopping-system-advanced
अस्वीकरण: यह सार्वजनिक सलाह उपयोगकर्ताओं की सुरक्षा के लिए शोषण योग्य पेलोड को छोड़ देती है। पूर्ण तकनीकी विवरण और PoC सहमत जिम्मेदार प्रकटीकरण नीति के तहत अनुरोध पर विक्रेता के लिए उपलब्ध हैं।