
cve-2023-1671 के लिए एक्सप्लॉइट। इसमें एक परीक्षण और शोषण फ़ंक्शन है। परीक्षण वल्नरेबल साइट से dnslog डोमेन पर एक पिंग अनुरोध भेजता है। यदि पिंग सफल होता है, तो वल्नरेबिलिटी मौजूद है, यदि नहीं, तो cve-2023-1671 अनुपस्थित है। दूसरी ओर, एक्सप्लॉइट फ़ंक्शन आपके कमांड के साथ सर्वर पर एक अनुरोध भेजता है।
/opt/ws/bin/ftsblistpack एक Perl स्क्रिप्ट है जो /opt/ws/bin/sblistpack को कॉल करती है, जो एक और Perl स्क्रिप्ट है।
इसमें शेल कमांड तर्क सिंगल कोट्स में संलग्न होते हैं:
$rc += system("$sblistpack '$uri' '$user' '$filetype' '$filein' '$fileout'");
यह भविष्य में महत्वपूर्ण होगा, यह उन चीजों में से एक होगा जो एक कमजोरी की ओर ले जाएगा।
इसके बाद /opt/ui/apache/htdocs/controllers/UsrBlocked.php शेल कमांड को ftsblistpack को उपयोगकर्ता द्वारा प्रदान किए गए पैरामीटर के साथ भेजता है: args_reason, url, filetypeser, user_encoded।
उपयोगकर्ता इनपुट अभी भी PHP फ़ंक्शन escapeshellarg() द्वारा संभाला जाता है, जो स्ट्रिंग के चारों ओर या किसी मौजूदा सिंगल कोट्स को जोड़ता है।
यह आपको स्ट्रिंग को सीधे शेल फ़ंक्शन में पास करने और उपयोगकर्ता पैरामीटर के साथ संसाधित करने की अनुमति देता है।
आप देख सकते हैं कि इससे क्या निकलता है:
यदि हम टाइप करते हैं:
';echo 1 #
तो हमारे पास है:
'shell user' ' ';echo 1 #'
और यह हमें इस कमांड में सिस्टम को कुछ नुकसान पहुंचाने की अनुमति देता है। हम अपना एन्कोडेड मान user_encoded में जोड़ते हैं।
UsrBlocked.php को /index.php?c=blocked के माध्यम से रीडायरेक्ट किया जाता है, फिर आवश्यक GET और POST पैरामीटर दर्ज किए जाते हैं। चूंकि user_encoded पैरामीटर Base64-एन्कोडेड है, यह इंजेक्शन के लिए आदर्श है।
https://github.com/ohnonoyesyes/CVE-2023-1671 - शेल एक्सप्लॉइट
https://vulncheck.com/blog/cve-2023-1671-analysis - pos cve-2023-1671
https://nvd.nist.gov/vuln/detail/CVE-2023-1671 - nist info cve-2023-1671
तो, एक परीक्षण और एक्सप्लॉइट फ़ंक्शन है।
परीक्षण कमजोर साइट से dnslog(http://www.dnslog.cn) डोमेन पर एक पिंग अनुरोध भेजता है। यदि पिंग सफल होती है, तो कमजोरी मौजूद है, यदि नहीं, तो cve-2023-1671 अनुपस्थित है।
दूसरी ओर, एक्सप्लॉइट फ़ंक्शन सर्वर पर आपके कमांड के साथ एक अनुरोध भेजता है।
-h
उपयोग पैरामीटर प्राप्त करें
--exploit
cve-2023-1671 का शोषण करने के लिए फ़ंक्शन को कॉल करता है।
यह बिना जांचे कि कोई कमजोरी है या नहीं, आपका मनमाना कमांड निष्पादित करेगा।
--test
कमजोरी परीक्षण फ़ंक्शन को कॉल करता है।
यह कमजोर सर्वर से dnslog डोमेन को पिंग करके किया जाता है।
यदि पिंग होती है, तो कमजोरी cve-2023-1671 मौजूद है।
-u
यह आपकी साइट का आईपी या url है।
प्रारूप 192.168.0.1 या site.com पर ध्यान दें
-p
कमजोर साइट का पोर्ट। यह एक अनिवार्य पैरामीटर है, भले ही आपके पास https://site.ocm हो, आपको -u site.com -p 443 निर्दिष्ट करना होगा
-c
फ़ंक्शन पैरामीटर --exploit
यह कोई भी मनमाना कमांड है जिसे आप साइट का शोषण करने के लिए निष्पादित करना चाहते हैं।
प्रारूप -c 'echo cve'
python cve-2023-1671.py --exploit -u 192.168.0.1 -p 443 -c 'echo 1'
python cve-2023-1671.py --test -u 192.168.0.1 -p 443
यह एक्सप्लॉइट शैक्षिक उद्देश्यों के लिए लिखा गया है और मैं आपके कार्यों के लिए जिम्मेदार नहीं हूं
इस एक्सप्लॉइट का उपयोग केवल अपने सिस्टम के परीक्षण और सुरक्षा के उद्देश्य से करें।