
تطبيق توضيحي يعرض استغلال حقن SQL في django 5.2.7
هذا التطبيق يوضح الثغرة CVE-2025-64459 التي تؤثر على إصدارات متعددة من Django. تم إصلاح هذه الثغرة في الإصدارات الأحدث من Django.
SQL Injection (حقن SQL) هو عندما يتم التعامل مع المدخلات المقدمة من المستخدم كجزء من استعلام SQL، مما يسمح للمهاجم بتغيير طريقة عمل الاستعلام وكشف أو تعديل بيانات لا يجب أن يتمكن من الوصول إليها.
هذه ثغرة حقن SQL في كائنات QuerySets وQ في Django يمكن أن تؤدي إلى كشف البيانات. ينشأ الاستغلال عن تمرير معاملات استعلام إلى QuerySet الخاص بـ Django، حيث يتمكن المستخدم من تعيين المفتاحين _connector و _negated لتنفيذ أجزاء SQL عشوائية.
في هذا التطبيق، يتم الاستغلال على مسار URL الرئيسي. زيارة cve.hyperf.app/?_connector=OR 1=1 OR تقوم بإدراج OR 1=1 OR في استعلام SQL، مما يعني أن الفلتر سيطابق كل سجل، وسيتم إرجاع جميع النتائج. في هذه الحالة، يتم كشف المنشورات المؤرشفة أو التي حالتها DRAFT.
[!NOTE]
تم تتبع db.sqlite3 و .env عمدًا بواسطة git لإعداد قاعدة البيانات من أجل الاستغلال.
انسخ المستودع وقم بمزامنة التبعيات باستخدام uv.
uv sync
ابدأ تشغيل الخادم التطويري.
uv run manage.py runserver