Уязвимости в веб- или мобильных приложениях могут раскрывать токены, API-ключи и другие данные. Часто их можно найти, анализируя JS-код, который может быть доступен случайно или намеренно.
1. Что искать в JavaScript:
👉 Токены доступа: часто в коде или запросах, например Bearer.
👉 API-ключи: могут быть hardcoded для вызова внешних API.
👉 Зашифрованные данные — иногда данные могут быть закодированы в коде.
2. Как находить утечки:
👉 Анализ исходного кода — откройте View Source или используйте инструменты разработчика (F12).
👉 Изучение запросов в браузере — отслеживайте запросы с параметрами вроде access_token.
👉 Анализ JavaScript-файлов — скачайте JS-ресурсы с помощью wget или curl, используйте инструменты типа JSDetox.
3. Использование утечек для атак
👉 Атаки с API-ключами — атакующий может использовать утёкший токен в запросах:
curl -H "Authorization: Bearer 1234567890abcdef" https://api.target.com/data
👉 Расширение через инъекции — доступные токены могут быть использованы для атак типа SQLi или XSS.
4. Как защититься:
👉 Не хардкодить ключи в коде: всегда используйте серверную сторону для генерации токенов.
👉 Шифрование: если необходимо хранить чувствительные данные в коде, обязательно их шифруйте.
👉 CORS: настройте правильную политику CORS (Cross-Origin Resource Sharing), чтобы ограничить доступ к API только с доверенных доменов.
👉 Ограничение прав API-ключей: минимизируйте права, присваиваемые API-ключам.
💡 Лайфхаки:
— Используйте grep для поиска ключевых слов, таких как access_token, api_key, token в скачанных JavaScript-файлах:
grep -r "access_token"
— Иногда полезно искать утечку токенов в ответах на GET-запросы, которые не имеют корректных заголовков безопасности.
— Если вам не удается найти утечку с помощью поиска в коде, используйте Wireshark или tcpdump для перехвата трафика и поиска в нем токенов.
🐸 Библиотека хакера
#буст
