• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Блог начинающего Bug Хантера. История о том, как я стал таксистом и заработал более $40к. Часть 4

r0hack

DAG
Gold Team
29.09.2017
522
1 087
BIT
0
Всем Салам!

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

Предисловие

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

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

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

xwGCVwRtFyeBCqUC6araHa23boE1J9ZF_dq4aqFAofBilj54kJCKuwViirQ7oFJ2kEfIuDn0YAocLK5RVMmYscoUGmmeqwcKogbg1UCsHjmDrDp-N26bS1ahLBEDU3S3Nvykqr0sCAVIOEQn_w


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

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

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

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

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

Ищем в открытых источниках

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

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

ptTWFFesmjAmyuR5aWiDrbkhHFnDYgG-BdHe_J0ZlSZcHLL0pkUvPWW34MOtQdZVXjro4kF6vbYjF5BxxZquu-HsQWMj4IJnrxConAWIjvYqRJdTR8TC46oDrSCbliBO4Q6mqbzMbEyc0hfybQ


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

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

YzB16rqavc9mDjaG3rX9x88GlL0tUr1qeCrfEFgVu_F6_RMylRAFOE6GKChe_5SaK-ex9zG2z7VNAxMA9r6RRS1aFvNgb8ka94lkh3q8IeGwKzDvU2m_bULwyVV-HBPHArDZhfzwCjKnYdev4A


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

etIfp3KUou-8DRoHA2ZuYUWpLh5hXMkMGQTmrD7s8vaJZ9FH16Hcsq1Fil7NYFmhd9-wq7qpMIBiJyrK6dvd-hHEqDk-u-l-vKCdnIcsQNL0pyJCbd20UMT-1wtNR9SjfHvMHRfs62E1nptm1Q


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

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

5nzR7Nfia6RiZnuI4ssmKf7Cl_iL52betkEEapk3STVuREWPC05p1zzZ2uPsseAW6vKXhSFD8UwJ5pgA8gtnqo0XUB4mB2z3gHtbadcbCLaO1W5sEx7HQXfvYoxHrqwJu8UKdGQkMar6lcq6Hw


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

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

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

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

b3Nu3EB4dYXCcjlEUQaZa3KeA2cvbr4wq8hGVLtfviPGdZTFUgKwVTVSAoXvqTyisMsI5o_7eZD2RNI0wMezz2FbbNU-cPydmQleTvfXrGqAuNCwBcG8VDvkxazgDn1DKM1xoBbzM5yKtUMLBg


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

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

Zz-ZYVB1ascZOpTt84aN994Vl-sbyNOVzGQ0j7cuc04oqU9-SUo8du0qPgkedQpAyGWi7tV-lja8nHU2W7X01ffUDi9v5bkY3fDgZn1riJTiE8k5Y-DGt3MwoTdlh0f_NPixRR6lw8wgdVo3dw


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

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

FgaJXBlLXL0j82MznhSE_KmCii-XNzwzuXjjui-uz8reMcElT_3OmC4oG-Z7kz7fczcQ4d1q1nFu0CEiqdiCAbtJ8yuzv663KPfiPn1JKDVX5n0GXRC8qLzFbVJhc5NFauOhSLt8OuXI0JUlTg


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

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

Резюмируя

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

h562HUzvJb33H--sZ6kXVVjiPVMus2i6gwLc3Xa1UD4vQv4q0wOd1L2kKp8_E56pNw4j07jmRspnL0TJbemGYtdnjWkQySHf-sAjNnzyN3N-CIpJ8rHvjraWstl3YSFmScb9nK0o7NjYb9DRQg


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

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!