Категория > Новости > HTB Laboratory. Взламываем GitLab и учимся перехватывать пути в Linux - «Новости»
HTB Laboratory. Взламываем GitLab и учимся перехватывать пути в Linux - «Новости»27-05-2021, 00:00. Автор: Бронислава |
GitLab.Сканирование вебаGitLab — это система управления репозиториями кода для Git с собственной вики, системой отслеживания ошибок и другими функциями. ![]() У нас есть возможность зарегистрироваться, что сразу и сделаем. Это позволит нам получить доступ к большему числу функций, чем у гостей. Поскольку мы имеем дело с серьезным проектом, «тыкать кавычки» в каждую форму смысла нет. Вместо этого стоит поискать информацию об уязвимостях и готовые эксплоиты. Первый шаг на пути к этому — узнать версию продукта. Обычно она приводится на страницах вроде About или в данном случае — Help. ![]() Мы узнаем версию GitLab CE — 12.8.1. Точка входаВ реальных условиях лучше всего искать эксплоиты при помощи Google, поскольку этот поисковик заглядывает и в личные блоги, и в самые разные отчеты. Но для ускорения можно пользоваться специализированными базами вроде Exploit-DB — скорее всего, там найдутся подходящие варианты. Если ты используешь Kali Linux, то эта база у тебя уже есть и для поиска можно использовать утилиту Поиск эксплоитов для GitLab с помощью searchsploit Как видишь, мы нашли сразу несколько эксплоитов, хотя для нужной версии GitLab ничего нет. Зато есть для более новой (номер 48431), а значит, скорее всего, подойдет и к нашей. Эксплуатируемая уязвимость срабатывает при перемещении задачи между проектами GitLab и приводит к тому, что мы можем читать файлы на удаленной машине. Однако у меня ни одна из реализаций этого эксплоита не заработала, поэтому придется все делать в ручном режиме. Для этого нам нужно изначальное исследование, доказательство работоспособности (proof of concept) этой уязвимости. Чтобы найти его, обращаемся в Google. Нам повезло, на HackerOne (самая известная платформа для bug bounty) нашелся целый отчет. В нем рассказано, как не только читать файлы, но и получить удаленное выполнение кода (RCE)! ![]() Для получения RCE нам нужно иметь консоль Ruby on Rails и значение ЗакреплениеИтак, читаем файл. Создадим два проекта в GitLab, а потом перейдем к вкладке Issues и выберем New Issue. Там указываем следующее значение в качестве описания и таким образом воспользуемся уязвимостью типа path traversal.
![]() ![]() Далее необходимо указать целевой проект (который мы создали вторым), после чего ![]() ![]() ![]() Перейти обратно к новости |