December 11, 2024

Черновик

Задание

Я разработал сайт под мини-энциклопедию. Пока доступна только бета-версия, но ты можешь приступить к поиску багов уже сейчас.

Решение

Поиск уязвимости

На главной сайт с заметками.

Если залезть внутрь кода увидим поле hidden.

Осталось понять каким образом все заменяется.

Если просканить через gobuster можно обнаружить папку с шаблонами. Интересует файл replaced.html

В коде страницы как раз показано каким образом выводится замененная строка.

По сути можно вставить любую cmd команду и она обработается. Проверяем через Burp.

pattern=Black&replace=system('id')&paragraph=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.

В данном случае по моду 1800.

Тут полный перечень, можно поискать.

Получение root

С полученным паролем лезем в ssh.

Прежде чем кидать linpeas смотрим дефолтный способ: sudo -l.

Пользователь имеет права запускать файл /opt/guessNum.sh с правами sudo.

Обычный if else скрипт. Но вот в нем есть уязвимость.

Ну или чуть поудобнее через /bin/bash.

Не забываем удалять файл, чтобы не было так просто для других)

Флаг

CODEBY{a_v3ry_unr3l1abl3_dr#ft}