
Lehr-Docker-Labor für Apache HTTP Server 2.4.49 – Path Traversal und RCE (CVE-2021-41773) mit CVE-Analyse, PoC-Exploit, Testnachweisen und Mitigationsanleitung.
⚠️ NUR für isolierte, edukative Laborumgebungen. Dieses Repository erstellt einen absichtlich verwundbaren Apache-Server. Niemals auf einem Live-, Produktions- oder internetzugänglichen Host betreiben.
Red-Team-Praktikumsprojekt von Team Alpha (ITSOLERA — Offensive Security / Exploit-Entwicklung für eine bekannte CVE). Die Arbeit ist auf sechs Aufgabenordner aufgeteilt, sodass jedes Mitglied über einen eigenen Pull Request beitragen kann.
📄 Abschlussbericht: 06-final-report/CVE-2021-41773-Final-Report.pdf
Apache 2.4.49 dekodiert einen %2e-kodierten Punkt nach seiner Pfadnormalisierungsprüfung,
sodass /files/.%2e/.%2e/.%2e/.%2e/etc/passwd das Dokumentenverzeichnis verlässt. Mit
aktiviertem mod_cgi ermöglicht derselbe Trick gegen /bin/sh die Ausführung von Remote-Code.
| Ordner | Verantwortlich | Ergebnis | Status |
|---|---|---|---|
01-cve-research/ | Fatima Bente Mustafa | CVE-Zusammenfassung, betroffene Versionen, Ursache, CVSS, Referenzen | ✅ Erledigt |
02-lab-setup/ | Emaar Ejaz | Verwundbares Apache 2.4.49 Docker-Lab + SETUP.md | ✅ Erledigt |
03-vulnerability-analysis/ | Anum Aamir Sajjad | ANALYSIS.md + evidence-log.txt | ✅ Erledigt |
04-exploit-poc/ | Noor Saba Basit | cve-2021-41773.py + exploit.sh + Logik | ✅ Erledigt |
05-testing-evidence/ | Sana Tariq | Screenshots, Terminal-Ausgabe, Server-Logs | ✅ Erledigt |
06-final-report/ | Muhammad Hammad | Zusammengestellter Abschlussbericht (PDF) + Gegenmaßnahmen | ✅ Erledigt |
Das verwundbare Ziel befindet sich in 02-lab-setup/. Aus diesem
Ordner heraus:
docker build -t cve-2021-41773-lab:2.4.49 .
docker run -d --name apache-2449-vuln -p 127.0.0.1:8080:80 cve-2021-41773-lab:2.4.49
Siehe 02-lab-setup/SETUP.md für die vollständige Einrichtung,
Verifikation, Beweissicherung und Fehlerbehebung.
Aktualisieren Sie auf Apache HTTP Server 2.4.51 oder höher. Als Defense in Depth halten Sie
<Directory /> standardmäßig auf Require all denied und gewähren Sie nur dort Zugriff, wo er benötigt wird.