Описание
Получите RCE на узле gallery.edu.stf (10.124.1.236).
Для получения флага выполните скрипт /home/rceflag.
Тестируем сайт, пробуем загрузить картинки и смотрим поведение.
Пытаемся загрузить вместо урла картинки
Код:
file:///etc/passwd
Сразу отправляем запрос в burp в repeater для удобства, он нам понадобится еще ни раз.
Переходим посмотреть что там за txt пришел в ответе.
Пол успеха в кармане. Теперь пробуем найти файлы из первой подсказки ./classes.php, ./ajax.php.
Перебираем варианты, сработал
Код:
file:///var/www/html/classes.php
.
По новой полученной ссылки в ответе видим classes.php
Проблема в строке usort($ImageArr, $SortFunc). В PHP второй параметр функции usort это имя функции, значит при большом желании мы можем вставить туда функцию system(), которая выполнит команду Linux.
Подсказка гласит:
Цитата:
создать phar-архив с объектом, который модифицирует переменные таким образом, чтобы они вызвали выполнение произвольного кода при десериализации.
Я поняла это так: когда PHP открывает файл через
Код:
phar://
он автоматически делает unserialize и нам нужно создать объект ImageSorting, где SortFunc будет "system". Тогда при уничтожении объекта выполнится
Код:
usort(..., "system")
. А вместо ImageArr попробуем запустить интерактивный shell