В этой статье я расскажу, как использовать расширение JS Miner для Burp Suite для анализа API и поиска интересных, чувствительных данных в JavaScript-файлах веб-приложения.
Еще по теме: Лучшие расширения Burp Suite
Что такое JS Miner
JS Miner (официальный репозиторий) — это бесплатное расширение для Burp Suite Professional, которое анализирует статические файлы, такие как JavaScript и JSON, на наличие интересных данных. Это расширение использует возможности веб-сканера уязвимостей Burp Suite и позволяет:
- Автоматически сканировать на наличие жестко закодированных секретов и учетных данных.
- Пассивно сканировать поддомены, к которым обращается веб-приложение.
- Активно пытаться восстанавливать исходный код из Source Map файлов (если они найдены).
- Пассивно искать API-эндпоинты, использующие методы GET/POST/PUT/DELETE/PATCH.
Результаты сканирования отображаются на панели управления и в карте сайта Burp Suite.
Обход веб-приложения
Чтобы получить максимальную пользу от JS Miner, важно сначала загрузить все статические файлы и пакеты, которые использует веб-приложение. Для этого необходимо использовать как можно больше функционала приложения, чтобы загрузить как можно больше контента в браузер.
При участии в программе Bug Bounty необходимо действовать этично и соблюдать установленные правила. Несанкционированный взлом является незаконным и рассматривается как уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
Это важно, потому что современные фронтенд-фреймворки поддерживают концепцию «ленивой загрузки» кода. Это означает, что загружается только необходимый код, пока он не потребуется. Чем больше мы взаимодействуем с приложением, тем больше статических файлов и пакетов будет загружено.
Пассивное сканирование JS Miner
Во время обхода приложения JS Miner будет пассивно анализировать входящие статические файлы через прокси Burp. Результаты начнут отображаться в карте сайта. Особое внимание стоит уделить найденным секретам и учетным данным.
Ожидайте ложные срабатывания, так как JS Miner использует энтропию Шеннона для повышения уровня уверенности в обнаруженных данных. Например, слово password может вызвать срабатывание. Несмотря на это, информация остается ценной.
Aктивноe сканирования JS Miner
Когда вы завершили обход приложения и уверены, что загрузили весь статический контент, найдите первый запрос к веб-приложению после успешной аутентификации в истории прокси. Обычно это может быть главная страница или основной экран после входа.
Щелкните правой кнопкой мыши по этому запросу в истории прокси, выберите Extensions —> JS Miner —> Run JS Auto-Mine (проверка всего). Это принудительно запустит активное сканирование всех файлов.
Важно отметить, что это действие нужно запускать вручную, так как активное сканирование Burp Suite не запускает его автоматически.
Проверка результатов JS Source Mapper
JS Miner может искать файлы Source Map, которые разработчики часто оставляют на сервере при развертывании.
Source Map (карты исходников) — это специальные файлы, которые используются для связи минифицированного или транспилированного кода (например, JavaScript) с его исходным кодом. Они позволяют разработчикам отлаживать минифицированный код, так как инструменты отладки могут отображать исходный код вместо сжатой версии.
Если такие файлы найдены, JS Miner попытается разделить пакетированный веб-приложение на отдельные исходные файлы и директории.
Если файлы Source Map обнаружены, расширение укажет, где сохранен результат. Вы можете открыть его в терминале и изучить весь код.
Если файлы Source Map не найдены, не расстраивайтесь — вы все равно загрузили весь код во время обхода приложения. Можно выгрузить все статические файлы, выбрав верхний уровень карты сайта, щелкнув по нему правой кнопкой мыши и выбрав Extensions —> JS Miner —> Scans —> Dump Static Files.
Единственным минусом может быть то, что JavaScript файлы могут быть минифицированы и запутаны, что затруднит их анализ.
Изучение кода и извлечение эндпоинтов
В зависимости от инструментов, которые вы используете, и вашего понимания используемого JavaScript-фреймворка, вы сможете быстро найти интересные маршруты и API-эндпоинты.
Например, инструменты типа jsluice (инструмент для анализа JavaScript-кода, который помогает извлекать и интерпретировать данные, такие как переменные, функции и объекты, из минифицированных или обфусцированных JavaScript-файлов) могут оказаться полезными. Иногда достаточно просто запустить команду tree в папке, чтобы увидеть структуру и быстро найти интересующие вас файлы.
В моем случае, в папке constants содержится файл APIConstant.js, в котором можно найти интересные маршруты эндпоинтов, не отображающиеся в текущей карте сайта.
JS Miner — незаменимое расширение для Burp Suite, которое помогает анализировать и понимать сложную структуру веб-приложений, взаимодействующих с API. Используя его возможности вы сможете обнаружить потенциальные конечные точки API и особенности исходного кода.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Подмена заголовка Origin в конечной точке API
- Взлом аккаунта мессенджера с помощью Burp Suite
- Поиск уязвимых API-эндпойнтов с помощью Fuzzapi