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
Tools/GitHubGitHub/jra89/cve-2019-19576
Payload-GenerierungSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubjra89/cve-2019-19576

CVE-2019-19576

Dies ist ein Filter-Bypass-Exploit, der zu beliebigem Datei-Upload und Remote-Code-Ausführung in class.upload.php <= 2.0.3 führt.

Repository anzeigen
123vor 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

class.upload.php <= 2.0.3 Beliebiger Datei-Upload

  • Autor - Jinny Ramsmark
  • Betroffener Anbieter - Verot.net
  • Betroffenes Produkt - class.upload.php <= 2.0.3
  • Getestet auf frisch installiertem Ubuntu 19.10 mit PHP7.3 und Apache/2.4.38
  • Insbesondere Debian/Ubuntu erwies sich als anfällig, da sie die Erweiterungen php, phar und phtml zu den verfügbaren PHP-Handlern hinzufügen. In diesem Fall hat class.upload.php die phar-Erweiterung nicht auf die Blacklist gesetzt.

Beschreibung

Dies ist ein Filter-Bypass-Exploit, der zu beliebigem Datei-Upload und Remote-Code-Ausführung führt. Das class.upload.php-Skript filtert „gefährliche Dateien und Inhalte“ und benennt sie in die txt-Dateierweiterung um. Es führt auch verschiedene Transformationen am hochgeladenen Bild durch, die normalerweise jede injizierte Nutzlast zerstören würden, selbst wenn der Dateierweiterungsfilter umgangen werden könnte.

Der Dateierweiterungsfilter ist eine Blacklist, sodass jedes Mal, wenn eine neue Erweiterung eingeführt wird (in diesem Fall phar) oder eine übersehen wurde, eine PHP-Datei hochgeladen werden kann. Der Inhalt muss jedoch weiterhin ein gültiges Bild sein und durchläuft weiterhin die Funktionen imagecreatefromjpeg und ähnliche. Zu diesem Zweck habe ich das inject.php-Skript geschrieben, das sich im Wesentlichen durch verschiedene Bilder probiert, bis es eines findet, bei dem die Nutzlast nicht durch den Prozess in class.upload.php zerstört wird. Dies ermöglicht uns effektiv einen beliebigen Datei-Upload und eine sehr heimliche Code-Ausführung, da es sich immer noch um ein gültiges Bild handelt und auf Seiten, auf denen es hochgeladen wurde, wie ein solches angezeigt wird.

Zeitleiste (90-Tage-Standardfrist)

  • 2019-12-03 - An Entwickler und K2 gemeldet
  • 2019-12-03 - K2 antwortete
  • 2019-12-04 - Verot antwortete mit einem Fix
  • 2019-12-04 - K2 hat mit einem eigenen vorbereiteten Fix geantwortet
  • 2019-12-04 - Verot hat den besagten Fix veröffentlicht (v2.0.4)
  • 2019-12-05 - Beide Parteien haben geantwortet und der Veröffentlichung der Informationen zugestimmt

In diesem PoC enthaltene Dateien

  • composer.json
  • upload.php
  • inject.php

Verwendung

Das upload.php-Skript ist der Beispielcode von verot.nets GitHub. Ich dachte, es wäre am besten, diese Schwachstelle mit ihrem eigenen Beispielcode zu demonstrieren.

  • Führen Sie „php inject.php“ in einem Terminal aus, es generiert ein Beispielbild mit einer einfachen Nutzlast in der Datei.
  • Wenn das Skript fertig ist, erzeugt es eine Datei namens „image.jpg.phar“.
  • Navigieren Sie zur upload.php-Datei und laden Sie image.jpg.phar hoch, es wird durchlaufen und Sie haben jetzt eine Shell

Beispiel

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.7=-
[+] Fetching image (100 X 100) from http://lorempixel.com/100/100/
[+] Jumping to end byte
[+] Searching for valid injection point
[!] Temp solution, if you get a 'recoverable parse error' here, it means it probably failed
[+] It seems like it worked!
[+] Result file: image.jpg.phar
root@kitploit:~
user@ayu:/var/www/html# curl -v -o - http://localhost/images/image_resized.phar?c=uname%20-a | grep -aPo "(Linux.*GNU)"
Linux ayu 5.0.0-36-generic #39-Ubuntu SMP Tue Nov 12 09:46:06 UTC 2019 x86_64 x86_64 x86_64 GNU

Vorgeschlagene Lösung

  • Keine Dateierweiterungen auf die Blacklist setzen.
  • Stattdessen standardmäßig eine Whitelist erlaubter Erweiterungen verwenden.
  • Oder einfach gar keine Erweiterungen bei hochgeladenen Dateien haben und den ursprünglichen Namen anderswo speichern.

Referenz

  • https://github.com/verot/class.upload.php/blob/2.0.3/src/class.upload.php#L3068

Beispielangriff in der Joomla K2-Erweiterung

Beliebiger Datei-Upload, der zu Remote-Code-Ausführung in JoomlaWorks K2 <= 2.10.1 aufgrund einer ungepatchten Version von class.upload.php führt

Webseite

  • https://getk2.org/

Beispielbilder

Ein normaler Benutzer lädt das von inject.php generierte Bild hoch, das eine einfache Nutzlast enthält. Es umgeht den Erweiterungsfilter in class.upload.php und wird nicht durch die Bildverarbeitung in der Bibliothek zerstört. Es wird wie ein normales Bild angezeigt, was subtiler ist.



Die Datei wird hochgeladen und kann als Hintertür verwendet werden, um Befehle auszuführen.

Tool herunterladen