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
CVE-2019-19634 — Dies ist ein Filter-Bypass-Exploit, der zu beliebigem Datei-Upload und Remote-Code-Ausführung in class.upload.php <= 2.0.4 führt. | Kitploit
Tools/GitHubGitHub/jra89/cve-2019-19634
Payload-GenerierungSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubjra89/cve-2019-19634

CVE-2019-19634

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

Repository anzeigen
368vor 6 JahrenVon Kitploit 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-2019-19634 - class.upload.php <= 2.0.4 Beliebiger Datei-Upload

  • Autor - Jinny Ramsmark
  • Betroffener Anbieter - Verot.net
  • Betroffenes Produkt - class.upload.php <= 2.0.4
  • Getestet auf einem frisch installierten Ubuntu 14.04 mit PHP5 und Apache
  • Insbesondere Debian/Ubuntu erwiesen sich als verwundbar, da sie die pht-Erweiterung unter anderem zu den verfügbaren PHP-Handlern hinzufügen. In diesem Fall hat class.upload.php die pht-Erweiterung nicht auf die Blacklist gesetzt.
  • Dieses CVE steht in direktem Zusammenhang mit CVE-2019-19576

Beschreibung

Dies ist ein Exploit zur Umgehung des Filters, der einen beliebigen Datei-Upload und Remote-Codeausführung ermöglicht. Das Skript class.upload.php filtert „gefährliche Dateien und Inhalte“ und benennt sie mit der Dateiendung txt um. Außerdem führt es verschiedene Transformationen am hochgeladenen Bild durch, die normalerweise jede injizierte Nutzlast zerstören würden, selbst wenn der Dateiendungsfilter umgangen werden könnte.

Der Dateiendungsfilter ist eine Blacklist. Sobald also eine neue Endung eingeführt wird (in diesem Fall pht) oder eine übersehen wurde, kann eine PHP-Datei hochgeladen werden. 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 Skript inject.php geschrieben, das im Wesentlichen verschiedene Bilder per Brute-Force durchprobiert, bis es eines findet, bei dem die Nutzlast durch den in class.upload.php durchgeführten Prozess nicht zerstört wird. Das verschafft uns effektiv einen beliebigen Datei-Upload und eine sehr heimliche Codeausführung, da es sich weiterhin um ein gültiges Bild handelt und auf Seiten, auf denen es hochgeladen wurde, auch wie ein solches angezeigt wird.

Das Skript inject.php wird bald zu einem allgemeineren Werkzeug für diese Art von Angriff umgeschrieben, aber vorerst wird es in dieser Art von CVE-Veröffentlichung nur als einzelne Skripte enthalten sein.

Zeitleiste (Standardfrist 90 Tage)

  • 2019-12-07 - An Entwickler und K2 von JoomlaWorks gemeldet (sie sind betroffen)
  • 2019-12-07 - Entwickler hat geantwortet und einen Patch veröffentlicht
  • 2019-12-08 - Entwickler hat geantwortet und der Veröffentlichung der Informationen zugestimmt

In diesem PoC enthaltene Dateien

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

Verwendung

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

  • Führen Sie in einem Terminal „php inject.php“ aus. Das Skript erzeugt ein Beispielbild mit einer einfachen Nutzlast in der Datei.
  • Wenn das Skript fertig ist, erzeugt es eine Datei namens „image.jpg.pht“.
  • Rufen Sie die Datei upload.php auf und laden Sie image.jpg.pht hoch. Sie wird durchgehen und Sie haben nun eine Shell.

Beispiel

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.8=-
[+] 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.pht
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

Lösungsvorschlag

  • Dateiendungen nicht auf eine Blacklist setzen.
  • Stattdessen standardmäßig eine Whitelist der erlaubten Endungen verwenden.
  • Oder hochgeladene Dateien ganz ohne Endungen speichern und den ursprünglichen Namen woanders ablegen.

Referenz

  • https://github.com/verot/class.upload.php/blob/2.0.5/src/class.upload.php#L3068
Tool herunterladen