
Exploit Shoplift de Magento (SUPEE-5344) - CVE-2015-1397
Descripción general
Este script explota la vulnerabilidad CVE-2015-1397 en Magento, comúnmente conocida como el exploit Shoplift de Magento. Permite a un atacante crear un nuevo usuario administrador en la base de datos de Magento inyectando cargas SQL.
Originalmente escrito en Python por Manish Kishan Tanwar (error1046), esta versión ha sido convertida a Bash con indicaciones de entrada amigables para las credenciales por Divine Clown (0xDTC).
Características
- Solicitud de credenciales: Solicita dinámicamente la URL objetivo, el nombre de usuario administrador y la contraseña.
- Manejo de errores: Proporciona mensajes de error detallados para entradas inválidas, solicitudes de red fallidas y respuestas inesperadas del servidor.
- Codificación Base64: Codifica dinámicamente las cargas para el procesamiento de Magento.
- Experiencia de usuario simplificada: Elimina la necesidad de codificación manual de cargas o entradas estáticas.
Requisitos previos
- Objetivo: La instalación de Magento debe ser vulnerable a CVE-2015-1397.
- Entorno: Linux con
bash, curl y la utilidad base64 instalados.
Uso
- Clone el repositorio o copie el script en su sistema local.
- Haga el script ejecutable:
chmod +x CVE-2015-1397
- Ejecute el script:
./CVE-2015-1397
- Siga las indicaciones:
- Ingrese la URL objetivo (ej.,
http://target.com/).
- Ingrese el nuevo nombre de usuario administrador.
- Ingrese la nueva contraseña de administrador.
- Si tiene éxito, el script mostrará las credenciales de administrador recién creadas.
Ejemplo
┌──(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
Cómo funciona
-
Validación de entrada:
- Asegura que la URL proporcionada comience con
http:// o https://.
- Valida que el nombre de usuario y la contraseña no estén vacíos.
-
Construcción de la carga:
- Construye un parámetro
___directive codificado en Base64 que contiene una consulta SQL para insertar un nuevo usuario administrador.
- Codifica la consulta SQL dinámicamente.
-
Explotación:
- Envía una solicitud
POST al punto final vulnerable usando curl.
- Utiliza el análisis de directivas internas de Magento para ejecutar la carga SQL.
-
Manejo de la respuesta:
- Verifica la respuesta del servidor en busca de indicadores de éxito o fracaso.
- Maneja errores comunes como URL inválida, respuesta vacía o problemas de red.
Manejo de errores
- URL inválida: Asegura que la URL objetivo comience con
http:// o https://.
- Entradas vacías: Valida que ni el nombre de usuario ni la contraseña estén vacíos.
- Problemas de red: Informa si la conexión con el objetivo falla.
- Respuesta vacía del servidor: Alerta al usuario si el servidor no devuelve una respuesta.
- Exploit no exitoso: Muestra la respuesta del servidor para fines de depuración.
Aviso legal
Este script está destinado únicamente a fines educativos. El uso no autorizado contra sistemas que no posea o para los que no tenga permiso de prueba es ilegal y poco ético. El autor y los contribuyentes no se responsabilizan por el mal uso de esta herramienta.
Agradecimientos
Agradecimientos especiales a:
- Autor del script original en Python: Manish Kishan Tanwar (error1046)
- Investigadores de seguridad y contribuyentes de la comunidad por documentar CVE-2015-1397.
Referencias