
Docker-basiertes Labor zur Reproduktion von CVE-2021-41773 (Apache HTTP Server 2.4.49) durch kontrollierten Path Traversal und Dateioffenlegung unter Verwendung eines eigenen Python-PoC.
Reproduktion von CVE-2021-41773, einer Path-Traversal-Schwachstelle in Apache HTTP Server 2.4.49.
Dieses Projekt verwendet Docker, um eine isolierte verwundbare Umgebung zu erstellen, sowie einen Python-PoC, um eine kontrollierte Datei-Offenlegung zu demonstrieren.
Sicherheit: Der PoC akzeptiert nur
localhost,127.0.0.1oder::1als Ziele. Tests müssen innerhalb des isolierten Labors durchgeführt werden.
Dieses Projekt demonstriert:
Die Demonstration konzentriert sich auf Datei-Offenlegung und nicht auf Remote-Codeausführung.
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
Der PoC verwendet ausschließlich Pythons Standardbibliothek und benötigt keine Python-Pakete von Drittanbietern.
Aus dem Repository-Stammverzeichnis:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
Lassen Sie dieses Terminal geöffnet.
Der Apache-Dienst ist ausschließlich über Folgendes erreichbar:
127.0.0.1:8080
In einem weiteren Terminal:
docker ps
Der Container sollte Folgendes anzeigen:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
Erwartete Ausgabe:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
Die Apache-Testseite sollte zurückgegeben werden.
Der PoC befindet sich unter:
exploit/exploit.py
Ausführen:
python3 exploit/exploit.py
Das Standardziel ist:
http://127.0.0.1:8080
Die Standard-Nachweisdatei ist:
/lab/secret.txt
Ein erfolgreicher Lauf erzeugt:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
Anschließend zeigt der PoC den Inhalt der kontrollierten Labordatei an.
Der PoC prüft zunächst, ob das Ziel eine lokale Adresse ist:
localhost
127.0.0.1
::1
Anschließend erstellt er einen Pfad, der codierte Traversal-Komponenten enthält:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
Die Anfrage wird über Pythons Standardmodul socket gesendet. Dadurch erhält der PoC die direkte Kontrolle über den HTTP-Anfragepfad.
Der verwundbare Apache-2.4.49-Server verarbeitet den präparierten Pfad und gibt den Inhalt von Folgendem zurück:
/lab/secret.txt
Das Abrufen dieser Datei bestätigt die Path-Traversal-Schwachstelle und die kontrollierte Datei-Offenlegung.
CVE: CVE-2021-41773
Produkt: Apache HTTP Server
Demonstrierte betroffene Version: 2.4.49
Schwachstellentyp: Path Traversal / Datei-Offenlegung
CVE-2021-41773 ist eine Path-Traversal-Schwachstelle in Apache HTTP Server 2.4.49. Eine speziell präparierte URL kann vorgesehene Pfadbeschränkungen umgehen und Zugriff auf Dateien außerhalb des erwarteten Verzeichnisses ermöglichen.
Unter bestimmten Konfigurationen kann die Schwachstelle schwerwiegendere Folgen haben. Dieses Projekt demonstriert bewusst die kontrollierte Datei-Offenlegung in einer isolierten Docker-Umgebung.
Die während der Tests gesammelten Screenshots werden unter folgendem Pfad gespeichert:
evidence/
Zu den Nachweisen gehören:
Die primäre Gegenmaßnahme ist ein Upgrade von Apache HTTP Server auf eine behobene Version.
Weitere defensive Maßnahmen umfassen:
Sicherheitshinweis von Apache HTTP Server: https://httpd.apache.org/security/vulnerabilities_24.html
NIST National Vulnerability Database: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
CERT-EU-Sicherheitshinweis: https://cert.europa.eu/publications/security-advisories/2021-054/
Dieses Projekt ist ausschließlich für autorisierte Sicherheitsschulungen und kontrollierte Labortests bestimmt.
Die Docker-Umgebung und der PoC sind für lokale Tests ausgelegt. Verwenden Sie den PoC nicht gegen Systeme, die Sie nicht besitzen oder für deren Bewertung Sie keine ausdrückliche Genehmigung haben.