
Magento Shoplift Exploit (SUPEE-5344) – CVE-2015-1397
Übersicht
Dieses Skript nutzt die CVE-2015-1397-Schwachstelle in Magento aus, allgemein bekannt als der Magento-Shoplift-Exploit. Es ermöglicht einem Angreifer, durch das Injizieren von SQL-Payloads einen neuen Admin-Benutzer in der Magento-Datenbank zu erstellen.
Ursprünglich von Manish Kishan Tanwar (error1046) in Python geschrieben, wurde diese Version von Divine Clown (0xDTC) in Bash umgewandelt und mit benutzerfreundlichen Eingabeaufforderungen für die Anmeldedaten versehen.
Funktionen
- Anmeldedatenabfrage: Fragt dynamisch nach der Ziel-URL, dem Admin-Benutzernamen und dem Passwort.
- Fehlerbehandlung: Liefert detaillierte Fehlermeldungen für ungültige Eingaben, fehlgeschlagene Netzwerkanfragen und unerwartete Serverantworten.
- Base64-Kodierung: Kodiert Payloads dynamisch für die Verarbeitung durch Magento.
- Vereinfachte Benutzererfahrung: Macht manuelle Payload-Kodierung oder statische Eingaben überflüssig.
Voraussetzungen
- Ziel: Die Magento-Installation muss anfällig für CVE-2015-1397 sein.
- Umgebung: Linux mit installierten
bash-, curl- und base64-Dienstprogrammen.
Verwendung
- Klonen Sie das Repository oder kopieren Sie das Skript auf Ihr lokales System.
- Machen Sie das Skript ausführbar:
chmod +x CVE-2015-1397
- Führen Sie das Skript aus:
./CVE-2015-1397
- Folgen Sie den Eingabeaufforderungen:
- Geben Sie die Ziel-URL ein (z. B.
http://target.com/).
- Geben Sie den neuen Admin-Benutzernamen ein.
- Geben Sie das neue Admin-Passwort ein.
- Bei Erfolg gibt das Skript die neu erstellten Admin-Anmeldedaten aus.
Beispiel
┌──(kali㉿kali)-[~/example]
└─$ ./CVE-2015-1397
Enter the target URL (e.g., http://example.com/): http://example.com/
Enter the new admin username: admin123
Enter the new admin password: pass123
[*] Sending payload to http://example.com/admin/Cms_Wysiwyg/directive/index/
[+] Exploit successful. Admin account created: admin123 / pass123
Funktionsweise
-
Eingabevalidierung:
- Stellt sicher, dass die angegebene URL mit
http:// oder https:// beginnt.
- Überprüft, dass Benutzername und Passwort nicht leer sind.
-
Payload-Konstruktion:
- Erstellt einen Base64-kodierten
___directive-Parameter, der eine SQL-Abfrage zum Einfügen eines neuen Admin-Benutzers enthält.
- Kodiert die SQL-Abfrage dynamisch.
-
Ausnutzung:
- Sendet eine
POST-Anfrage an den anfälligen Endpunkt mit curl.
- Nutzt die interne Direktivenverarbeitung von Magento, um den SQL-Payload auszuführen.
-
Antwortverarbeitung:
- Überprüft die Serverantwort auf Hinweise auf Erfolg oder Misserfolg.
- Behandelt häufige Fehler wie ungültige URL, leere Antwort oder Netzwerkprobleme.
Fehlerbehandlung
- Ungültige URL: Stellt sicher, dass die Ziel-URL mit
http:// oder https:// beginnt.
- Leere Eingaben: Überprüft, dass weder Benutzername noch Passwort leer sind.
- Netzwerkprobleme: Meldet, ob die Verbindung zum Ziel fehlschlägt.
- Leere Serverantwort: Warnt den Benutzer, wenn der Server keine Antwort zurückgibt.
- Erfolgloser Exploit: Zeigt die Serverantwort zu Debugging-Zwecken an.
Rechtlicher Hinweis
Dieses Skript ist ausschließlich für Bildungszwecke bestimmt. Die unbefugte Nutzung gegen Systeme, die Sie nicht besitzen oder für die Sie keine Testberechtigung haben, ist illegal und unethisch. Der Autor und die Mitwirkenden übernehmen keine Verantwortung für den Missbrauch dieses Tools.
Danksagungen
Besonderer Dank gilt:
- Dem ursprünglichen Autor des Python-Skripts: Manish Kishan Tanwar (error1046)
- Den Sicherheitsforschern und Mitwirkenden der Community für die Dokumentation von CVE-2015-1397.
Referenzen