[Перевод] Поиск доступных конфиденциальных API ключей в JS-файлах


6b7517c260951434d0ba6ab212bf6300.png

Сегодня мы узнаем, как найти открытые API токены в JS файлах. Они представляют риск, поскольку могут предоставить возможность несанкционированного доступа к базе данных компании или платным услугам. Это также распространенная уязвимость в системе безопасности, возникающая из-за неопытности и невнимательности команды разработчиков.

Торчащий API токен — это как пропуск для злоумышленников. Они могут использовать его для получения несанкционированного доступа. Если API токен предоставляет доступ к какому-либо сервису, например AWS или GitHub, злоумышленники могут воспользоваться им, что приведет к финансовым потерям компании, утрате репутации и доверия клиентов.

Если токен используется для доступа к какой-либо базе данных, то это большая проблема для компании.

Теперь давайте начнем с некоторых методов поиска открытых API токенов:

1) Использование Google дорков

Например с помощью такого запроса.

site:example.com filetype:js apiKey

Существует множество других дорков, которые могут подойти под нашу задачу, все зависит от вашей фантазии.

2) Использование поиска кода на GitHub

Вы можете выполнить простой поиск, чтобы найти API токены в общедоступных репозиториях, используя следующие ключевые слова:

"apiKey"

"Bearer"

"token"

"Authorization"

3) Ручное тестирование

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

Инструменты, необходимые для автоматизации:

1) Subfinder или любой другой инструмент перечисления поддоменов.

2) Katana от Projectdiscovery.

3) httpx для сортировки живых поддоменов.

4) Mantra: поиск API ключей.

Загрузите вышеуказанные инструменты на свой ПК.

Теперь перейдем к следующему шагу:

1) Используйте Subfinder для сбора поддоменов целевого объекта и сохранения в файл (redacted.txt), с помощью следующей команды:

subfinder -d redacted.com -o redact.txt

2) Используйте httpx для сортировки активных доменов из redacted.txt, в новый файл

httpx -dL redact.txt -o livered.txt

3) С помощью Katana найдите и сохраните .js файлы в файл redactjs, используя следующие параметры:

katana -u livered.txt | grep ".js$" | tee redactjs

4) Перенаправьте вывод содержимого файла redactjs в Mantra с помощью следующей команды:

cat redactjs | mantra

Ниже приведен скриншот моего сканирования реальной цели. У меня не получилось найти API токены зато этот простой способ помог найти конфиденциальную информацию в js-файлах.

a31e7f74aa80cabb552c5e2da389c282.png

Вы можете использовать вышеперечисленные инструменты для автоматизации процесса поиска такой информации и перестать постоянно делать это в ручном режиме. Надеюсь, что вы внедрите этот метод в свой арсенал.

Спасибо за внимание. Удачи!

Ещё больше познавательного контента в Telegram-канале — Life-Hack — Хакер

© Habrahabr.ru