
POC-Django JSONField/HStoreField SQL इंजेक्शन भेद्यता (CVE-2019-14234)
Django ने 1 अगस्त 2019 को एक सुरक्षा अपडेट जारी किया, जो JSONField और HStoreField नामक दो मॉडल फ़ील्ड्स में SQL इंजेक्शन भेद्यता को ठीक करता है।
संदर्भ लिंक:
https://www.djangoproject.com/weblog/2019/aug/01/security-releases/ https://www.leavesongs.com/PENETRATION/django-jsonfield-cve-2019-14234.html
इस भेद्यता के लिए आवश्यक है कि डेवलपर JSONField/HStoreField का उपयोग करें; इसके अलावा, queryset के फ़ील्ड नाम को नियंत्रित किया जा सकता है। Django का अंतर्निहित अनुप्रयोग Django-Admin प्रभावित होता है, जो हमें भेद्यता को दोहराने का एक आसान तरीका देता है।
निम्न कमांड निष्पादित करके एक भेद्य Django 2.2.3 को संकलित करें और प्रारंभ करें:
docker compose build
docker compose up -d
पर्यावरण प्रारंभ होने के बाद, आप http://your-ip:8000 पर Django का होम पेज देख सकते हैं।
सबसे पहले, उपयोगकर्ता नाम admin और पासवर्ड a123123123 के साथ Django-Admin में लॉग इन करें।
http://your-ip:8000/admin/फिर मॉडल Collection के लिस्ट-व्यू http://your-ip:8000/admin/vuln/collection/ पर जाएं:
GET पैरामीटर में detail__a'b=123 जोड़ें, जहाँ detail JSONField है:
आप देख सकते हैं कि single quote सफलतापूर्वक इंजेक्ट हो गया है, और SQL स्टेटमेंट एक त्रुटि रिपोर्ट करता है: