
django 5.2.7 में SQL Injection एक्सप्लॉइट प्रदर्शित करने वाला डेमो एप्लिकेशन
यह एप्लिकेशन CVE-2025-64459 को प्रदर्शित करता है जो कई Django संस्करणों को प्रभावित करता है। इस भेद्यता को Django के नए रिलीज़ में पैच कर दिया गया है।
SQL Injection तब होता है जब उपयोगकर्ता द्वारा प्रदान किया गया इनपुट SQL क्वेरी के हिस्से के रूप में माना जाता है, जिससे हमलावर क्वेरी के काम करने के तरीके को बदल सकता है और उस डेटा को उजागर या संशोधित कर सकता है जिसे उसे एक्सेस नहीं करना चाहिए।
यह Django QuerySets और Q objects में एक SQL Injection भेद्यता है जिसके परिणामस्वरूप डेटा उजागर हो सकता है। यह शोषण क्वेरी पैरामीटर को Django QuerySet में पास करने का परिणाम है, जहां उपयोगकर्ता _connector और _negated कुंजियों को सेट करके मनमाना SQL अंश निष्पादित कर सकता है।
इस ऐप में, शोषण होम URL रूट पर किया जाता है। cve.hyperf.app/?_connector=OR 1=1 OR पर जाने से SQL क्वेरी में OR 1=1 OR डाला जाता है, जिसका अर्थ है कि फ़िल्टर हर रिकॉर्ड से मेल खाएगा, और सभी परिणाम लौटा दिए जाएंगे। इस मामले में, जो पोस्ट संग्रहीत हैं या DRAFT स्थिति पर सेट हैं, वे उजागर हो जाती हैं।
[!NOTE]
db.sqlite3 और .env को जानबूझकर git द्वारा ट्रैक किया जाता है ताकि शोषण के लिए डेटाबेस सेट किया जा सके।
रिपो को क्लोन करें और uv के साथ डिपेंडेंसी सिंक करें।
uv sync
डेव सर्वर शुरू करें।
uv run manage.py runserver