
Exploit de preuve de concept pour le contournement de chemin Apache HTTP Server 2.4.49 (CVE-2021-41773) permettant la lecture de fichiers et l'exécution de code à distance via CGI.
Le 5 octobre 2021, un CVE détaillant une attaque de traversée de chemin sur Apache HTTP Server v2.4.49 a été publié. Attribué sous le numéro CVE-2021-41773, il a été publié avec la description suivante :
Une faille a été découverte dans une modification apportée à la normalisation des chemins dans Apache HTTP Server 2.4.49. Un attaquant pourrait utiliser une attaque de traversée de chemin pour mapper des URL vers des fichiers en dehors de la racine des documents attendue. Si les fichiers en dehors de la racine des documents ne sont pas protégés par "require all denied", ces requêtes peuvent réussir. De plus (sic) cette faille pourrait divulguer le code source de fichiers interprétés comme les scripts CGI. Ce problème est connu pour être exploité dans la nature. Ce problème n'affecte que Apache 2.4.49 et pas les versions antérieures.
[+] Apache 2.4.49 sans CGI activé, nous ne pouvons que lire les fichiers. Nous accédons simplement aux fichiers que nous voulons, en encodant en URL l'un des . dans chaque segment de chemin.
[+] Apache 2.4.49 avec CGI activé CGI compliquera les choses car le module tentera d'exécuter le fichier récupéré. Pour du texte brut, comme /etc/passwd, cela peut être problématique :). Afin d'exécuter du code, nous pouvons simplement appeler sh ou bash avec la commande dans le corps. Notez que l'en-tête de réponse Content-Type devra également être émis pour que le client sache comment afficher les résultats.
[+] Apache 2.4.50 Cet exemple particulier a été corrigé dans la version 2.4.50. Cependant, le correctif était incomplet et n'a pas pris en compte un double encodage de l'URL.