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
Nginx-CVE-2013-4547 — Docker-basiertes Labor, das die Nginx CVE-2013-4547 URI-Parsing-Schwachstelle demonstriert, mit schrittweiser Ausnutzung zur Privilegienumgehung und Codeausführung. | Kitploit
Tools/GitHubGitHub/cyberharsh/nginx-cve-2013-4547
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsFehlkonfigurationLernen & Bildung
GitHubcyberharsh/nginx-cve-2013-4547

Nginx-CVE-2013-4547

Docker-basiertes Labor, das die Nginx CVE-2013-4547 URI-Parsing-Schwachstelle demonstriert, mit schrittweiser Ausnutzung zur Privilegienumgehung und Codeausführung.

Repository anzeigen
314vor 6 JahrenNoch 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

Nginx Dateiname-Logik-Schwachstelle (CVE-2013-4547)

Schwachstellenbeschreibung

Betroffene Versionen: Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

Referenzen:

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4547
  • https://blog.werner.wiki/file-resolution-vulnerability-nginx/
  • http://www.91ri.org/9064.html

Schwachstellenbeschreibung

Diese Schwachstelle hat nicht viel mit Codeausführung zu tun. Die Hauptursache ist, dass die URI der Anfrage falsch geparst wird, wodurch fälschlicherweise der vom Benutzer angeforderte Dateiname ermittelt wird. Dies führt zu Nebeneffekten wie Umgehung von Berechtigungen und Codeausführung.

Ein Beispiel: Wenn Nginx eine Anfrage erkennt, die auf .php endet, wird diese zur Verarbeitung an FastCGI weitergeleitet. Die übliche Konfiguration sieht wie folgt aus:

root@kitploit:~
location ~ \.php$ {
    include        fastcgi_params;

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
    fastcgi_param  DOCUMENT_ROOT /var/www/html;
}

Im Normalfall (wenn pathinfo deaktiviert ist) werden nur Dateien mit der Endung .php an FastCGI zur Verarbeitung gesendet.

Mit CVE-2013-4547 können wir eine Anfrage wie 1.gif[0x20][0x00].php stellen. Diese URI passt auf den regulären Ausdruck \.php$ und gelangt in diesen Location-Block. Nach dem Betreten interpretiert Nginx die angeforderte Datei jedoch fälschlicherweise als 1.gif[0x20] und setzt diesen Wert als SCRIPT_FILENAME, der an FastCGI gesendet wird.

FastCGI führt die Verarbeitung auf Basis des Werts von SCRIPT_FILENAME durch, was letztendlich die Analyse-Schwachstelle verursacht.

Daher müssen wir lediglich eine Datei hochladen, deren Name mit einem Leerzeichen endet, um PHP dazu zu bringen, sie zu analysieren.

Ein weiteres Beispiel: Viele Websites schränken den Zugriff auf das Admin-Backend durch IP-Beschränkungen ein:

root@kitploit:~
location /admin/ {
    allow 127.0.0.1;
    deny all;
}

Wir können folgende URI anfordern: /test[0x20]/../admin/index.php. Diese URI passt nicht auf /admin/ im Location-Block und umgeht somit die IP-Überprüfung. Die letztendlich angeforderte Datei ist jedoch /test[0x20]/../admin/index.php, also /admin/index.php, sodass der Zugriff auf das Admin-Backend erfolgreich ist. (Voraussetzung ist, dass ein Verzeichnis namens test existiert – dies ist eine Eigenheit von Linux-Systemen; wenn ein nicht existierendes Verzeichnis verwendet wird, tritt selbst bei einem Sprung in die übergeordnete Ebene ein Datei-nicht-gefunden-Fehler auf. Unter Windows gibt es diese Einschränkung nicht.)

Schwachstellentest

Starten der Schwachstellenumgebung:

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

Nach dem Start der Umgebung rufen Sie http://your-ip:8080/ auf, um eine Upload-Seite zu sehen.

Diese Umgebung verwendet eine Blacklist-Validierung; wir können keine Dateien mit der Endung .php hochladen und müssen daher CVE-2013-4547 ausnutzen. Wir laden eine Datei namens 1.gif (beachten Sie das Leerzeichen am Ende) hoch:

Rufen Sie http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php auf; Sie werden sehen, dass PHP analysiert wurde:

Hinweis: [0x20] ist ein Leerzeichen, [0x00] ist \0. Beide Zeichen müssen nicht URL-kodiert werden.

Tool herunterladen