
PoC لحقن SQL لـ CVE-2025-7558. من تأليف i-Corner
الملخص
تم العثور على ثغرة أمنية مصنّفة كحرجة في نظام التصويت code-projects Voting System 1.0. العنصر المتأثر هو دالة غير معروفة في الملف /admin/positions_add.php. يؤدي هذا التلاعب بالوسيط Description إلى حقن SQL. تم توثيق هذه الثغرة باسم CVE-2025-7558. يمكن تنفيذ الهجوم عن بُعد. بالإضافة إلى ذلك، يتوفر استغلال لها.
التفاصيل
تم اكتشاف ثغرة أمنية في نظام التصويت code-projects Voting System 1.0 وتصنيفها كحرجة. الجزء المتأثر بهذه المشكلة هو جزء غير معروف من الملف /admin/positions_add.php. يؤدي التلاعب بالوسيط description بإدخال غير معروف إلى ثغرة حقن SQL. استخدام CWE لوصف المشكلة يقود إلى CWE-89. يقوم المنتج ببناء كل أو جزء من أمر SQL باستخدام مدخلات متأثرة خارجيًا من مكوّن علوي، لكنه لا يحيد أو يحيد بشكل غير صحيح العناصر الخاصة التي قد تعدّل أمر SQL المقصود عند إرساله إلى مكوّن سفلي. تتأثر السرية والنزاهة والتوافر.
تتم معالجة هذه الثغرة تحت المعرف CVE-2025-7558. من المعروف أن استغلالها سهل. يمكن شن الهجوم عن بُعد. التفاصيل التقنية بالإضافة إلى استغلال عام معروفة. يُعلن مشروع MITRE ATT&CK أن تقنية الهجوم هي T1505.
الاستغلال متاح ويُعلن عنه كإثبات للمفهوم. من خلال البحث باستخدام inurl:admin/positions_add.php، يمكن العثور على أهداف معرّضة للخطر عبر Google Hacking.
لا توجد معلومات معروفة حول إجراءات مضادة محتملة. قد يُقترح استبدال الكائن المتأثر بمنتج بديل.
الثغرة موثقة أيضًا في قاعدة بيانات الثغرات الأمنية لدى EUVD (EUVD-2025-21289). الإدخال المرتبط بهذه الثغرة متاح في VDB-225935.
===========================================================================
استغلال PoC لحقن SQL في CVE-2025-7558. من تأليف i-Corner https://github.com/i-Corner
https://github.com/i-Corner/cve/issues/6
لا أنسب لنفسي أي فضل في هذا العمل.
CVE-2025-7558 Voting System In PHP With Source Code - Source Code & Projects
الملف المعرّض للخطر: /admin/positions_add.php
تحليل الكود
في /admin/positions_add.php، يتم دمج المعلمات التي يدخلها المستخدم (مثل معلمة description) مباشرة في جملة SQL، مما يؤدي إلى ثغرة حقن SQL.
$description = $_POST['description'];
$max_vote = $_POST['max_vote'];
$sql = "SELECT * FROM positions ORDER BY priority DESC LIMIT 1";
$query = $conn->query($sql);
$row = $query->fetch_assoc();
$priority = $row['priority'] + 1;
$sql = "INSERT INTO positions (description, max_vote, priority) VALUES ('$description', '$max_vote', '$priority')";
if($conn->query($sql)){
استخدم sqlmap مع PoC.txt بهذا الأمر:
python .\sqlmap.py -r .\PoC.txt --dbs --batch
