
CVE-2024-51567 ist ein Python-PoC-Exploit, der eine RCE-Schwachstelle im upgrademysqlstatus-Endpunkt von CyberPanel v2.3.6 angreift und dabei den CSRF-Schutz umgeht.
CVE-2024-51567 ist ein Python-Proof-of-Concept (PoC)-Exploit-Skript für CVE-2024-51567, eine kritische Command-Injection-Schwachstelle, die CyberPanel v2.3.6 betrifft. Diese Schwachstelle, die im Endpunkt upgrademysqlstatus gefunden wurde, ermöglicht die Remote-Befehlsausführung (RCE) durch Umgehung des CSRF-Schutzes und Nutzung von Shell-Metazeichen in bestimmten Parametern.
⚠️ Wichtiger Haftungsausschluss: Dieses Skript ist nur für Bildungszwecke und autorisierte Sicherheitstests an Systemen gedacht, die Ihnen gehören oder für die Sie ausdrücklich die Erlaubnis zum Testen haben. Unbefugte Nutzung dieses Skripts auf irgendeinem System ist illegal und strafbar. Der Autor übernimmt keine Verantwortung für Missbrauch. Halten Sie sich stets an ethische Standards und geltende Gesetze.
upgrademysqlstatus in databases/views.py von CyberPanel (vor Commit 5b08cd6) erlaubt es entfernten Angreifern, beliebige Befehle auszuführen, indem sie die secMiddleware-Schutzmaßnahmen umgehen, die nur POST-Anfragen filtern. Diese Schwachstelle kann durch Verwendung von Shell-Metazeichen im Parameter statusfile ausgenutzt werden./dataBases/upgrademysqlstatus aushttpx-Modulgit clone https://github.com/ajayalf/CVE-2024-51567.git
cd CVE-2024-51567
httpx installiert ist:
pip install httpx
Um das Skript auf einem einzelnen Ziel auszuführen, verwenden Sie den folgenden Befehl:
python CVE-2024-51567.py <target-url>
Beispiel:
python CVE-2024-51567.py http://example.com
Um das Skript auf mehreren Zielen auszuführen, erstellen Sie eine Textdatei mit einer Liste von Ziel-URLs (eine URL pro Zeile), und verwenden Sie den Befehl:
python CVE-2024-51567.py <targets.txt>
Beispiel:
python CVE-2024-51567.py targets.txt
Wenn Sie mehrere Ziele verwenden möchten, erstellen Sie eine Textdatei mit dem Namen targets.txt oder einem beliebigen Namen. Das Format der Datei sollte eine Liste von URLs sein, mit einer URL pro Zeile, wie unten gezeigt:
http://target1.com
http://target2.com
http://target3.com
Nachdem das Skript eine Verbindung zu einem Ziel hergestellt hat, können Sie Shell-Befehle eingeben, die auf dem Zielserver ausgeführt werden. Um zu beenden, geben Sie exit oder quit ein.
get_CSRF_token(client): Ruft das CSRF-Token aus Cookies auf der Hauptseite des Ziels ab.
client (ein httpx.Client-Objekt)pwn(client, CSRF_token, cmd): Sendet ein manipuliertes Payload mit dem CSRF-Token und dem gewünschten Befehl.
client (ein httpx.Client-Objekt), CSRF_token (String), cmd (String)exploit(client, cmd): Führt die Funktion pwn auf dem Ziel aus, um den Befehl auszuführen und gibt die Ausgabe aus.
client (ein httpx.Client-Objekt), cmd (String)run_exploit(target): Initialisiert eine Verbindung zum Ziel und startet eine interaktive Befehlsschleife.
Wenn das CSRF-Token nicht in den Cookies gefunden wird, gibt das Skript alle empfangenen Cookies aus und beendet sich mit einer hilfreichen Fehlermeldung.
/ der korrekte Endpunkt zum Abrufen des CSRF-Tokens ist. Wenn es ein anderer ist, passen Sie die Funktion get_CSRF_token entsprechend an.Für weitere Informationen zu dieser Schwachstelle lesen Sie bitte die folgenden Ressourcen:
target (String, Ziel-URL)exit oder quit eingibt.Hauptausführung: Überprüft das Argument, um zu bestimmen, ob das Ziel eine einzelne URL oder eine Datei mit mehreren Zielen ist.