
Эксплойт Magento Shoplift (SUPEE-5344) - CVE-2015-1397
Обзор
Этот скрипт эксплуатирует уязвимость CVE-2015-1397 в Magento, широко известную как эксплойт Magento Shoplift. Он позволяет атакующему создать нового администратора в базе данных Magento путем внедрения SQL-пейлоадов.
Первоначально написан на Python Manish Kishan Tanwar (error1046), эта версия была переписана на Bash с удобными интерактивными запросами на ввод учётных данных автором Divine Clown (0xDTC).
Возможности
- Запрос учётных данных: Динамически запрашивает целевой URL, имя администратора и пароль.
- Обработка ошибок: Выводит подробные сообщения об ошибках для недопустимых входных данных, неудачных сетевых запросов и неожиданных ответов сервера.
- Кодирование Base64: Динамически кодирует пейлоады для обработки Magento.
- Упрощённый пользовательский опыт: Устраняет необходимость в ручном кодировании пейлоадов или статических входных данных.
Предварительные требования
- Цель: Установка Magento должна быть уязвима к CVE-2015-1397.
- Среда: Linux с установленными утилитами
bash, curl и base64.
Использование
- Клонируйте репозиторий или скопируйте скрипт в свою локальную систему.
- Сделайте скрипт исполняемым:
chmod +x CVE-2015-1397
- Запустите скрипт:
./CVE-2015-1397
- Следуйте подсказкам:
- Введите целевой URL (например,
http://target.com/).
- Введите новое имя администратора.
- Введите новый пароль администратора.
- В случае успеха скрипт выведет только что созданные учётные данные администратора.
Пример
┌──(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
Как это работает
-
Проверка входных данных:
- Убеждается, что предоставленный URL начинается с
http:// или https://.
- Проверяет, что имя пользователя и пароль не пусты.
-
Построение пейлоада:
- Формирует параметр
___directive, закодированный в Base64, содержащий SQL-запрос для вставки нового администратора.
- Динамически кодирует SQL-запрос.
-
Эксплуатация:
- Отправляет
POST-запрос к уязвимой конечной точке с помощью curl.
- Использует внутренний механизм обработки директив Magento для выполнения SQL-пейлоада.
-
Обработка ответа:
- Проверяет ответ сервера на наличие признаков успеха или неудачи.
- Обрабатывает типичные ошибки, такие как неверный URL, пустой ответ или сетевые проблемы.
Обработка ошибок
- Неверный URL: Убеждается, что целевой URL начинается с
http:// или https://.
- Пустые входные данные: Проверяет, что ни имя пользователя, ни пароль не пусты.
- Сетевые проблемы: Сообщает, если не удалось установить соединение с целью.
- Пустой ответ сервера: Предупреждает пользователя, если сервер не вернул ответ.
- Неудачный эксплойт: Выводит ответ сервера для целей отладки.
Юридическое предупреждение
Этот скрипт предназначен только для образовательных целей. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения, является незаконным и неэтичным. Автор и участники не несут ответственности за любое неправомерное использование этого инструмента.
Благодарности
Особая благодарность:
- Автору оригинального скрипта на Python: Manish Kishan Tanwar (error1046)
- Исследователям безопасности и участникам сообщества за документирование CVE-2015-1397.
Ссылки