
CVE-2021-41773 | Apache HTTP Server 2.4.49 est vulnérable aux attaques de type Path Traversal et d'exécution de code à distance.
CVE-2021-41773 Selon la National Vulnerability Database (NVD), CVE-2021-41773, le serveur Apache HTTP Server 2.4.49 est vulnérable aux attaques de traversée de chemin et d'exécution de code à distance.
La vulnérabilité de traversée de chemin a été introduite en raison du nouveau changement de code ajouté pour la normalisation des chemins, c'est-à-dire pour supprimer les parties indésirables ou dangereuses du chemin d'URL,
mais elle était insuffisante pour détecter différentes techniques d'encodage des caractères de traversée de chemin « dot-dot-slash (../) ». Pour empêcher les attaques de traversée de chemin, la fonction de normalisation chargée de résoudre les valeurs encodées en URL depuis l'URI demandée résolvait les valeurs Unicode une par une. Ainsi, lors de l'encodage en URL du second point sous la forme %2e , la logique ne parvient pas à reconnaître %2e comme un point et ne le décode donc pas, convertissant les caractères ../ en .%2e/ et contournant la vérification.
Outre le contournement de la vérification de traversée de chemin, pour qu'un serveur Apache HTTP soit vulnérable, la configuration du serveur HTTP doit soit contenir la directive de répertoire pour l'ensemble du système de fichiers du serveur avec Require all granted, soit la directive de répertoire doit être complètement absente du fichier de configuration. Par conséquent, contourner la vérification dot-dot sous la forme .%2e et l'enchaîner avec une directive de répertoire mal configurée permet à un attaquant de lire des fichiers arbitraires comme passwd depuis le système de fichiers du serveur vulnérable.
Alors que CVE-2021-41773 a été initialement documenté comme une vulnérabilité de type traversée de chemin et de divulgation de fichiers, des recherches supplémentaires ont conclu que la vulnérabilité peut être davantage exploitée pour exécuter du code à distance lorsque le module mod_cgi est activé sur le serveur Apache HTTP. Cela permet à un attaquant d'exploiter la vulnérabilité de traversée de chemin et d'appeler n'importe quel binaire sur le système à l'aide de requêtes HTTP POST.
est désactivé sur le serveur Apache HTTP en commentant la ligne ci-dessus dans le fichier de configuration. Par conséquent, lorsque mod_cgi est activé et que la configuration « Require all granted » est appliquée à la directive de répertoire du système de fichiers, un attaquant peut exécuter des commandes à distance sur le serveur Apache.
#Comment reproduire
docker run -dit --name Apache -p 83:80 b0x
#Connectez-vous au conteneur et exécutez la commande suivante
cp /bin/sh /usr/bin/
ruby CVE-2021-41773.rb
# c c wWw wWw -2021-41773
# (OO) (O) (O) wWw
# ,'.--.) ( / ) (O)_
# / //_|_ / / .' __)
# | ___ / / ( _)
# '. ) `--' / `.__)
# `-.' `-..-'
# Author:Habib
# ruby CVE-2021-41773.rb target_url dir command
# ruby CVE-2021-41773.rb http://localhost bin/sh whoami
ruby CVE-2121-41773.rb http://localhost:83
Target: http://localhost:83 is vulnerable
Command:
ruby CVE-2121-41773.rb http://localhost:83 bin/sh id Target: http://localhost:83 is vulnerable
Command: uid=1(daemon) gid=1(daemon) groups=1(daemon)