| Категория >  Новости > 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. 
   Далее необходимо указать целевой проект (который мы создали вторым), после чего     Перейти обратно к новости |