
CVE-2021-41773 | Apache HTTP Server 2.4.49 is vulnerable to Path Traversal and Remote Code execution attacks
CVE-2021-41773 राष्ट्रीय भेद्यता डेटाबेस (NVD) CVE-2021-41773 के अनुसार, Apache HTTP सर्वर 2.4.49 पथ अनुवर्तन और दूरस्थ कोड निष्पादन हमलों के लिए संवेदनशील है।
पथ अनुवर्तन भेद्यता पथ सामान्यीकरण के लिए जोड़े गए नए कोड परिवर्तन के कारण उत्पन्न हुई, अर्थात् URL पथों से अनावश्यक या खतरनाक भागों को हटाने के लिए, लेकिन यह पथ अनुवर्तन वर्णों “डॉट-डॉट-स्लैश (../)” को एन्कोड करने की विभिन्न तकनीकों का पता लगाने में अपर्याप्त था। पथ अनुवर्तन हमलों को रोकने के लिए, सामान्यीकरण फ़ंक्शन जो अनुरोधित URI से URL-एन्कोडेड मानों को हल करने के लिए जिम्मेदार है, ने यूनिकोड मानों को एक बार में एक हल किया। इसलिए जब दूसरे डॉट को %2e के रूप में URL एन्कोड किया जाता है, तो तर्क %2e को डॉट के रूप में पहचानने में विफल रहता है, जिससे यह डिकोड नहीं होता, यह वर्णों ../ को .%2e/ में परिवर्तित करता है और जाँच को बायपास करता है।
पथ अनुवर्तन जाँच बायपास के साथ, Apache HTTP सर्वर के संवेदनशील होने के लिए, HTTP सर्वर कॉन्फ़िगरेशन में या तो पूरे सर्वर के फ़ाइल सिस्टम के लिए निर्देशिका निर्देश 'Require all granted' के रूप में होना चाहिए या निर्देशिका निर्देश कॉन्फ़िगरेशन फ़ाइल से पूरी तरह से गायब होना चाहिए। इसलिए, डॉट-डॉट जाँच को .%2e के रूप में बायपास करके और इसे गलत तरीके से कॉन्फ़िगर किए गए निर्देशिका निर्देश के साथ जोड़कर, एक हमलावर कमजोर सर्वर फ़ाइल सिस्टम से passwd जैसी मनमानी फ़ाइलें पढ़ सकता है।
जबकि CVE-2021-41773 को शुरू में पथ अनुवर्तन और फ़ाइल प्रकटीकरण भेद्यता के रूप में दस्तावेज़ित किया गया था, अतिरिक्त शोध ने निष्कर्ष निकाला कि जब Apache HTTP सर्वर पर mod_cgi मॉड्यूल सक्षम होता है, तो भेद्यता का दूरस्थ कोड निष्पादन करने के लिए और अधिक शोषण किया जा सकता है, यह एक हमलावर को पथ अनुवर्तन भेद्यता का लाभ उठाने और HTTP POST अनुरोधों का उपयोग करके सिस्टम पर किसी भी बाइनरी को कॉल करने की अनुमति देता है।
module is disabled on Apache HTTP server by commenting the above line in the configuration file. Hence, when mod_cgi is enabled and “Require all granted” config is applied to the filesystem directory directive then an attacker can remotely execute commands on the Apache server.
#How To Reproduce
docker run -dit --name Apache -p 83:80 b0x
#Log into container and excute the following
cp /bin/sh /usr/bin/
ruby CVE-2021-41773.rb
# c c wWw wWw -2021-41773
# (OO) (O) (O) wWw
# ,'.--.) ( / ) (O)_
# / //_|_ / / .' __)
# | ___ / / ( _)
# '. ) `--' / `.__)
# `-.' `-..-'
# Author:Habib
# ruby CVE-2021-41773.rb target_url dir command
# ruby CVE-2021-41773.rb http://localhost bin/sh whoami
ruby CVE-2121-41773.rb http://localhost:83
Target: http://localhost:83 is vulnerable
Command:
ruby CVE-2121-41773.rb http://localhost:83 bin/sh id Target: http://localhost:83 is vulnerable
Command: uid=1(daemon) gid=1(daemon) groups=1(daemon)