
Exploit für cve-2023-1671. Es gibt eine Test- und eine Exploit-Funktion. Der Test sendet eine Ping-Anfrage an die dnslog-Domäne von der verwundbaren Site aus. Wenn der Ping erfolgreich ist, existiert die Schwachstelle, wenn nicht, fehlt cve-2023-1671. Die Exploit-Funktion hingegen sendet eine Anfrage mit Ihrem Befehl an den Server.
/opt/ws/bin/ftsblistpack ist ein Perl-Skript, das /opt/ws/bin/sblistpack aufruft, ein weiteres Perl-Skript.
Die Shell-Befehlsargumente darin sind in einfache Anführungszeichen eingeschlossen:
$rc += system("$sblistpack '$uri' '$user' '$filetype' '$filein' '$fileout'");
Dies wird in Zukunft wichtig sein, es wird eines der Dinge sein, die zu einer Sicherheitslücke führen.
Als nächstes übergibt /opt/ui/apache/htdocs/controllers/UsrBlocked.php den Shell-Befehl an ftsblistpack mit benutzerbereitgestellten Parametern: args_reason, url, filetypeser, user_encoded.
Die Benutzereingabe wird immer noch von der PHP-Funktion escapeshellarg() verarbeitet, die einfache Anführungszeichen um die Zeichenkette oder um vorhandene einfache Anführungszeichen hinzufügt.
Dadurch können Sie die Zeichenkette direkt an die Shell-Funktion übergeben und zusammen mit den Benutzerparametern verarbeiten.
Sie können sehen, was daraus resultiert:
Wenn wir eingeben:
';echo 1 #
Dann haben wir:
'shell user' ' ';echo 1 #'
Und dies ermöglicht es uns, mit diesem Befehl Schaden am System anzurichten. Wir fügen unseren codierten Wert zu user_encoded hinzu.
UsrBlocked.php wird über /index.php?c=blocked umgeleitet, dann werden die notwendigen GET- und POST-Parameter eingegeben. Da der Parameter user_encoded Base64-codiert ist, ist er ideal für eine Injektion.
https://github.com/ohnonoyesyes/CVE-2023-1671 - Shell-Exploit
https://vulncheck.com/blog/cve-2023-1671-analysis - pos cve-2023-1671
https://nvd.nist.gov/vuln/detail/CVE-2023-1671 - NIST-Informationen zu cve-2023-1671
Es gibt eine Test- und eine Exploit-Funktion.
Der Test sendet eine Ping-Anfrage an die dnslog-Domain (http://www.dnslog.cn) von der anfälligen Website. Wenn der Ping erfolgreich ist, liegt die Sicherheitslücke vor, wenn nicht, fehlt cve-2023-1671.
Die Exploit-Funktion hingegen sendet eine Anfrage mit Ihrem Befehl an den Server.
-h
Verwendungsparameter anzeigen
--exploit
Ruft die Funktion zum Ausnutzen von cve-2023-1671 auf.
Dies führt Ihren beliebigen Befehl aus, ohne zu prüfen, ob eine Sicherheitslücke vorliegt.
--test
Ruft die Funktion zum Testen der Sicherheitslücke auf.
Dies geschieht durch einen Ping an die dnslog-Domain vom anfälligen Server.
Wenn ein Ping erfolgt, liegt die Sicherheitslücke cve-2023-1671 vor.
-u
Dies ist die IP oder URL Ihrer Website.
Beachten Sie das Format 192.168.0.1 oder site.com
-p
Der Port der anfälligen Website. Dies ist ein Pflichtparameter, auch wenn Sie https://site.ocm haben, müssen Sie -u site.com -p 443 angeben.
-c
Der Funktionsparameter --exploit.
Dies ist ein beliebiger Befehl, den Sie ausführen möchten, um die Website auszunutzen.
Format: -c 'echo cve'
python cve-2023-1671.py --exploit -u 192.168.0.1 -p 443 -c 'echo 1'
python cve-2023-1671.py --test -u 192.168.0.1 -p 443
Dieser Exploit wurde zu Bildungszwecken geschrieben, und ich übernehme keine Verantwortung für Ihre Handlungen.
Verwenden Sie diesen Exploit nur zum Zwecke des Testens und Schützens Ihres Systems.