
Exploit Magento Shoplift (SUPEE-5344) - CVE-2015-1397
Panoramica
Questo script sfrutta la vulnerabilità CVE-2015-1397 in Magento, comunemente nota come exploit Magento Shoplift. Permette a un attaccante di creare un nuovo utente amministratore nel database di Magento iniettando payload SQL.
Originariamente scritto in Python da Manish Kishan Tanwar (error1046), questa versione è stata convertita in Bash con prompt di input facili da usare per le credenziali da Divine Clown (0xDTC).
Funzionalità
- Richiesta Credenziali: Richiede dinamicamente l'URL di destinazione, nome utente admin e password.
- Gestione Errori: Fornisce messaggi di errore dettagliati per input non validi, richieste di rete fallite e risposte impreviste del server.
- Codifica Base64: Codifica dinamicamente i payload per l'elaborazione di Magento.
- Esperienza Utente Semplificata: Elimina la necessità di codificare manualmente i payload o di input statici.
Prerequisiti
- Target: L'installazione di Magento deve essere vulnerabile a CVE-2015-1397.
- Ambiente: Linux con utilità
bash, curl e base64 installate.
Utilizzo
- Clona il repository o copia lo script sul tuo sistema locale.
- Rendi eseguibile lo script:
- Esegui lo script:
- Segui le richieste:
- Inserisci l'URL di destinazione (es.
http://target.com/).
- Inserisci il nuovo nome utente admin.
- Inserisci la nuova password admin.
- Se l'operazione riesce, lo script mostrerà le credenziali admin appena create.
Esempio
┌──(kali㉿kali)-[~/example]
└─$ ./CVE-2015-1397
Enter the target URL (e.g., http://target.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
Come Funziona
-
Validazione Input:
- Assicura che l'URL fornito inizi con
http:// o https://.
- Verifica che nome utente e password non siano vuoti.
-
Costruzione Payload:
- Costruisce un parametro
___directive codificato in Base64 contenente una query SQL per inserire un nuovo utente admin.
- Codifica dinamicamente la query SQL.
-
Sfruttamento:
- Invia una richiesta
POST all'endpoint vulnerabile usando curl.
- Utilizza l'analisi delle direttive interne di Magento per eseguire il payload SQL.
-
Gestione Risposta:
- Controlla la risposta del server per indicatori di successo o fallimento.
- Gestisce errori comuni come URL non valido, risposta vuota o problemi di rete.
Gestione Errori
- URL non valido: Assicura che l'URL di destinazione inizi con
http:// o https://.
- Input vuoti: Verifica che né nome utente né password siano vuoti.
- Problemi di rete: Segnala se la connessione al target fallisce.
- Risposta del server vuota: Avvisa l'utente se il server non restituisce una risposta.
- Exploit non riuscito: Mostra la risposta del server a scopo di debug.
Dichiarazione di non responsabilità legale
Questo script è destinato esclusivamente a scopi educativi. L'uso non autorizzato contro sistemi di cui non si possiede la proprietà o il permesso di test è illegale e non etico. L'autore e i collaboratori non sono responsabili per qualsiasi uso improprio di questo strumento.
Riconoscimenti
Un ringraziamento speciale a:
- Autore originale dello script Python: Manish Kishan Tanwar (error1046)
- Ricercatori di sicurezza e contributori della comunità per aver documentato CVE-2015-1397.
Riferimenti