Черновик
Задание
Я разработал сайт под мини-энциклопедию. Пока доступна только бета-версия, но ты можешь приступить к поиску багов уже сейчас.
Решение
Поиск уязвимости
Если залезть внутрь кода увидим поле hidden.
Осталось понять каким образом все заменяется.
Если просканить через gobuster можно обнаружить папку с шаблонами. Интересует файл replaced.html
В коде страницы как раз показано каким образом выводится замененная строка.
По сути можно вставить любую cmd команду и она обработается. Проверяем через Burp.
pattern=Black&replace=system('id')¶graph=4И получаем warning в функции preg_replace.
Раз знаем функцию можно поискать статейки по эксплуатации. Находим такую.
Получение первого пользователя
Прокинуть linpeas не получится.
Почему-то при попытке дать ему права на исполнение ничего не происходит, x так и появился где бы файл не находился.
А вот поискать файлы с правами на чтение для непривилегированных пользователей можно. Только перед этим их нужно отфильтровать.
Сам таск был выпущен 30.06.2024 => можно поискать в пределах этой даты.
system('find / -type f -user root -readable -newermt 2023-06-30 ! -newermt 2023-07-01 2>/dev/null');В самом конце вывода есть два интересных файла: passwd и shadow.backup. Все с правами на чтение.
-rw-r--r— 1 root root 1047 Jun 30 2023 /etc/passwd -rw-r---— 1 root shadow 682 Jun 30 2023 /etc/shadow -r--r--r— 1 root root 682 Jun 30 2023 /etc/shadow.backup
Можно сбрутить пароль от derek.
Тут полный перечень, можно поискать.
Получение root
С полученным паролем лезем в ssh.
Прежде чем кидать linpeas смотрим дефолтный способ: sudo -l.
Пользователь имеет права запускать файл /opt/guessNum.sh с правами sudo.
Обычный if else скрипт. Но вот в нем есть уязвимость.
Ну или чуть поудобнее через /bin/bash.
Не забываем удалять файл, чтобы не было так просто для других)
Флаг
CODEBY{a_v3ry_unr3l1abl3_dr#ft}