ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Веб-уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Блог начинающего Bug Хантера. История о том, как я стал таксистом и заработал более $40к. Часть 4 (https://forum.antichat.xyz/showthread.php?t=579981)

r0hack 03.06.2022 13:16

Всем Салам!

Давно не появлялся на форуме, да и вообще нигде не писал и не выступал. Решил больше времени уделить на прокачивание хард и софт скиллов. Но теперь я решил возобновить свою активность в сети по мере возможности буду писать. Также у меня появился канал в телеграм, где я публикую какие-то краткие заметки из пентестов, багбаунти и менеджмента: Bounty On Coffee . Так что присоединяйтесь.

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

В апреле 2020 года я решил исследовать партнерский портал Ситимобил и, конечно, попробовать заработать на этом.

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

Прежде всего нужно было попасть в аккаунт. Я видел три способа это сделать:

Первый — пойти в налоговую, зарегистрироваться, как ИП и подать официальную заявку на подключение к Ситимобил. Это гарантированный способ получить аккаунт в системе, но самый нудный, сложный и не анонимный.

Второй способ — попытаться обойти авторизацию, но без гарантий на успех.

Третий вариант — найти человека, который уже зарегистрирован в системе и попробовать договориться, чтобы мне дали аккаунт менеджера.

Я решил пойти по пути наименьшего сопротивления и начал с третьего варианта.

Ищем в открытых источниках
На этом этапе пригодились Яндекс.Коллекции. Так называется сервис для хранения избранного: картинок, видео или ссылок. Он встроен в Яндекс.Браузер.

Там можно собирать публичные коллекции, и многие пользователи намеренно или случайно сохраняют в открытом доступе личные вкладки. С помощью таких dork’ов можно найти много интересного. Например, несколько человек, которые хранят в коллекциях ссылки на партнерские сайты Ситимобил.

Один из них вел какой-то партнерский блог. Я уже собирался написать ему в Skype, но сначала присмотрелся повнимательнее.

Блог не был опубликован, но на GitHub нашлись исходники, а в них ссылки на Google Диск, где в открытом доступе лежали инструкции, которые Ситимобил написал для партнеров.

Документация к личному кабинету: обзор интерфейса и функций портала, инструкции — ничего особенного. Там было и пошаговое руководство созданию нового пользователя. Оно было бесполезно без инвайта, но на одном из скриншотов я увидел поля «логин» и «пароль», заполненные открытым текстом.

Креды подошли. Так, спустя неделю поисков у меня появился доступ к активному демоаккаунту и отправная точка для продолжения исследований.

Изучаем окружение

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

Больше двух недель возни с Burp Suite без заметных результатов. И вот, кажется 5 мая, я вновь зашел на страницу с «моими» водителями и увидел ошибку: «у вас нет доступа».

Нет, аккаунт не заблокировали. Похоже, в тот день шли какие-то технические работы и у учетки отозвали все доступы. Пришлось перебирать известные адреса страниц в надежде, что одна из них будет доступна. Мне повезло, открылась страница с ранней версией этой партнерки. У нее отличался не только дизайн, но и endpoint. Если у всех страниц был /taxiserv/page, то здесь /taxiserv/new/anketa.

Раньше я видел на этой странице только «своих» таксистов, но теперь там появился длинный перечень таксопарков и профили водителей, которые зарегистрированы в этом таксопарке.

При помощи чужого идентификатора и еще одного бага, IDOR — небезопасной прямой ссылки, я подключил к демоаккаунту реального менеджера и таким образом получил его привилегии. Прямо на фронт вывалились карточки с информацией о таксистах (скрины паспорта и водительского удостоверения).

Теперь я мог просматривать и редактировать информацию о водителях, всего больше 400 тысяч анкет.

Судя по числу записей, это могли быть не только действующие водители, но и все те, кто регистрировался в системе за последние годы.

Чуть позже я нашел в полях интерфейса демонстрационного аккаунта пару мест для инъекций, time blind SQL-injection и error based SQL-injection. Ничего нестандартного не было, это были обычные SQLi инъекции, параметр с инъекцией был внутри json запроса.

Обратите внимание на тайминг

Это уже не такой зрелищный способ получить данные, но зато с его помощью можно вытащить все содержимое базы данных. Но в БагБаунти мы баги не эксплуатируем, а останавливаемся после получения подтверждения наличия бага.

Резюмируя
В ходе тестирования ни один таксист не пострадал. Я использовал для проникновения демоаккаунт, после, мне админами был сделан тестовый аккаунт (через 2-3 месяца уже у многих были тестовые аккаунты, но и награды соответственно снизили)

У Mail.ru одна из лучших баг-баунти программ. Она входила в топ-10 на HackerOne, теперь ждем Mail на российских площадках. Уже спустя месяц я получил награду: $8 000 за Improper Access Control и $25 000 за пару SQL-инъекций и еще чуть более $10 000 за остальные логические баги.

Если у этой истории и есть мораль, она в том, что, не стоит забывать про безопасность внутренних сервисов. То, что к ним имеют доступ только сотрудники и деловые партнеры, не значит, что туда не проникнут злодеи.

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

Всем удачной охоты! За помощь в написании статьи спасибо коллеге из Бастиона - Santry.


Время: 22:40