Информационная безопасность (ИБ)
January 21

Как я обнаружил критическую уязвимость и заработал 4 000 долларов на Bug Bounty

Привет, хакеры! Это Zack0x01, и я снова здесь, чтобы поделиться одним из самых интересных случаев в моем пути Bug Bounty. После перерыва по личным причинам, с сентября я возобновил охоту в рамках публичной программы Bug Bounty (BBP) на платформе HackerOne. В этом блоге я расскажу о своем пути, инструментах, которые я использовал, и о том, как заработал 4 000 долларов, обнаружив критические уязвимости. Давайте начнем!

Перебор поддоменов

Перебор поддоменов не всегда является моей основной стратегией. Однако для этой цели я использовал такие инструменты, как Subfinder, Findomain и Assetfinder, чтобы собрать полный список поддоменов.
Чтобы удалить дубликаты, я использовал известный инструмент anew от TomNomNom, а затем использовал httpx от Project Discovery для определения активных поддоменов.

Совет профессионала: Как только все поддомены перечислены, Eyewitness поможет придать наглядности, создавая скриншоты всех поддоменов и организуя их в одну HTML-страницу. Этот метод сэкономил мне время и усилия при поиске интересной страницы для входа и регистрации на test-domain-h1.app.com.

Анализ логики приложения

Понимание бизнес-логики приложения крайне важно для успешного поиска уязвимостей. Например:
• Приложения электронной коммерции: ищите уязвимости в процессах оплаты, формирования цен и оформления заказа.
• Платформы для бронирования билетов: анализируйте функции, связанные с созданием билетов, их передачей и управления бронированием.

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

Тестирование функциональности приложения

Когда я понял, как работает приложение, я начал тестировать функции создания билетов и ссылки для регистрации. Вот что я сделал:
1. Использовал полезные нагрузки, такие как '><svg/onload=confirm(1)>, в поля имя, email и описание при создании билета.
2. Генерировал и проверял публичные ссылки для регистрации, чтобы убедиться, что мои полезные нагрузки вызывают XSS (межсайтовый скриптинг).

Первоначальные результаты

Было обнаружено несколько XSS уязвимостей, но они оказались дубликатами ранее обнаруженных проблем.

Несмотря на первоначальные неудачи, после небольшого перерыва я вернулся к приложению с новыми силами.

Важное открытие

В процессе изучения административных функций я наткнулся на кнопку с надписью "EXPORT YOUR CUSTOMERS", которая позволяла экспортировать данные клиентов в формате PDF или Excel.
При перехвате запроса экспорта с помощью Burp Suite я обнаружил следующий POST-запрос:

POST /FileGenerator/user/ZAZZ-SDFSSDF-ZERZE-QSDFQSF
Host: test-domain-h1.app.com
Cookie: ....  
{"UserID": "ZAZZ-SDFSSDF-ZERZE-QSDFQSF"}

Стратегия эксплуатации:

Ответ сервера возвращал fileID, который затем использовался в GET-запросе для получения данных клиентов.
Путём инкрементирования значения fileID я получил доступ к данным других клиентов, включая:
• Полное имя
• Адрес электронной почты
• Почтовый индекс
• Номер телефона
• Адрес

Эта уязвимость раскрывала конфиденциальную информацию, которая могла стоить тысячи долларов на чёрном рынке!

Impact:

В приложении, стоимость которого оценивается в миллиарды, была обнаружена критическая уязвимость IDOR (Insecure Direct Object Reference). Я оперативно сообщил об уязвимости и получил вознаграждение в размере $2,000.

Продолжение поиска: никогда не останавливайтесь на одной уязвимости

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

Результат:

За это дополнительное открытие я получил ещё $2,000. Общая сумма вознаграждения составила $4,000.

Основные выводы:
1. Тщательная энумерация: Не пренебрегайте субдоменами — они часто содержат скрытые «жемчужины».
2. Понимание бизнес-логики: Анализируйте назначение и влияние каждой функции, чтобы обнаружить критические уязвимости.
3. Упорство приносит результаты: Неудачи — это часть процесса. Возвращаясь к целевому приложению с новыми силами, можно добиться значительных успехов.
4. Дубликаты? Не сдавайтесь: Тестирование схожих функциональностей часто помогает обнаружить упущенные уязвимости.

Спасибо, что ознакомились с моим рассказом.

Источник

Life-Hack Media:

Life-Hack - Жизнь-Взлом

OSINT

Новости Кибербеза

Курсы по программированию

Юмор