Union (2021)

Ключевые моменты прохождения:
✅ Поэтапно эксплуатируем Union SQL-инъекцию ✅ Читаем файлы с помощью Union SQL-инъекции ✅ Читаем php файлы и эксплуатируем RCE через заголовок X-Forwarded-For ✅ Повышаем наши права до рута с помощью sudo -l
Разведка
На машине даются куки - PHPSESSID. Это значит, что на сайте есть авторизация.

В запросе можно указать один параметр - player:

При этом, форма подвержена SQL-инъекции:

При помощи данной шпаргалки, мы можем увидеть, что есть база данных mysql:

Чтобы увидеть все базы данных, нужно воспользоваться функцией group_concat(). Она объединяет строки групп в одну строку:

В этих базах данных нет ничего интересного, кроме бд november. Можно посмотреть, какие таблицы в ней есть:

Получаем флаг:

На http://10.10.11.128/challenge.php нужно ввести флаг:

Теперь, если просканировать 22 порт, то он будет открыт:
Получаем первого юзера
С помощью SQL мы можем читать удаленные файлы, например:

Возможно, на скриншоте плохо видно, но кроме рута есть еще два юзера uhc и htb. Я пытался получить их id_rsa, но ничего не вышло. Потом вспомнил, что в gobuster'е я получил config.php, который сейчас можно прочитать:

Для ssh подошли следующие креды:

Получаем второго юзера
К сожалению, юзер uhc предназначен только для того, чтобы прочитать .php файлы и user.txt. Но файле firewall.php можно обнаружить RCE:
Проверить RCE легко, например, вот так:

Таким образом можно сделать reverse shell:

Получаем рута
Получение рута максимально простое. Если честно, я не знаю, как так получилось, что в medium машине вот такой прив эск. Заключается он в том, что пользователю www-data можно запускать все команды без пароля с привилегиями рута:

Last updated
Was this helpful?