
Magento Shoplift Exploit (SUPEE-5344) - CVE-2015-1397
Visão Geral
Este script explora a vulnerabilidade CVE-2015-1397 no Magento, comumente referida como exploit Magento Shoplift. Permite que um atacante crie um novo usuário administrador no banco de dados do Magento injetando payloads SQL.
Originalmente escrito em Python por Manish Kishan Tanwar (error1046), esta versão foi convertida para Bash com prompts de entrada amigáveis para credenciais por Divine Clown (0xDTC).
Funcionalidades
- Prompt de Credenciais: Solicita dinamicamente a URL alvo, nome de usuário administrador e senha.
- Tratamento de Erros: Fornece mensagens de erro detalhadas para entradas inválidas, falhas em requisições de rede e respostas inesperadas do servidor.
- Codificação Base64: Codifica payloads dinamicamente para o processamento do Magento.
- Experiência do Usuário Simplificada: Elimina a necessidade de codificação manual de payloads ou entradas estáticas.
Pré-requisitos
- Alvo: A instalação do Magento deve ser vulnerável ao CVE-2015-1397.
- Ambiente: Linux com os utilitários
bash, curl e base64 instalados.
Uso
- Clone o repositório ou copie o script para o seu sistema local.
- Torne o script executável:
- Execute o script:
- Siga as instruções:
- Insira a URL alvo (ex.:
http://target.com/).
- Insira o novo nome de usuário administrador.
- Insira a nova senha de administrador.
- Se bem-sucedido, o script exibirá as novas credenciais de administrador criadas.
Exemplo
┌──(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
Como Funciona
-
Validação de Entrada:
- Garante que a URL fornecida comece com
http:// ou https://.
- Valida que o nome de usuário e a senha não estão vazios.
-
Construção do Payload:
- Constrói um parâmetro
___directive codificado em Base64 contendo uma consulta SQL para inserir um novo usuário administrador.
- Codifica a consulta SQL dinamicamente.
-
Exploração:
- Envia uma requisição
POST para o endpoint vulnerável usando curl.
- Utiliza a análise interna de diretivas do Magento para executar o payload SQL.
-
Tratamento de Resposta:
- Verifica a resposta do servidor em busca de indicadores de sucesso ou falha.
- Lida com erros comuns como URL inválida, resposta vazia ou problemas de rede.
Tratamento de Erros
- URL Inválida: Garante que a URL alvo comece com
http:// ou https://.
- Entradas Vazias: Valida que nem o nome de usuário nem a senha estejam vazios.
- Problemas de Rede: Informa se a conexão com o alvo falhar.
- Resposta Vazia do Servidor: Alerta o usuário se o servidor não retornar uma resposta.
- Exploit Sem Sucesso: Exibe a resposta do servidor para fins de depuração.
Aviso Legal
Este script é destinado apenas para fins educacionais. O uso não autorizado contra sistemas que você não possui ou não tem permissão para testar é ilegal e antiético. O autor e os colaboradores não são responsáveis por qualquer uso indevido desta ferramenta.
Agradecimentos
Agradecimentos especiais a:
- Autor do script original em Python: Manish Kishan Tanwar (error1046)
- Pesquisadores de segurança e contribuidores da comunidade por documentarem o CVE-2015-1397.
Referências