Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cloudfoundry_uaa — CVE-2016-4468 | Kitploit
Инструменты/GitHubGitHub/shanika04/cloudfoundry_uaa
Аутентификация и авторизацияБезопасность облачной инфраструктурыБезопасность облачных средDevSecOpsУправление идентификацией и доступом (IAM)Безопасность API
GitHubshanika04/cloudfoundry_uaa

cloudfoundry_uaa

CVE-2016-4468

Репозиторий
145 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
# Сервер учетных записей и аутентификации CloudFoundry (UAA)

Build Status Coverage Status

UAA — это мультитенантный сервис управления идентификацией, используемый в Cloud Foundry, но также доступный как автономный OAuth2-сервер. Его основная роль — выступать в качестве OAuth2-провайдера, выпуская токены для клиентских приложений, которые они используют при выполнении действий от имени пользователей Cloud Foundry. Он также может аутентифицировать пользователей с их учетными данными Cloud Foundry и может выступать в качестве SSO-сервиса, используя эти (или другие) учетные данные. Он имеет конечные точки для управления учетными записями пользователей и регистрации OAuth2-клиентов, а также различные другие функции управления.

Координаты

  • Токены: Заметка о токенах, областях видимости и полномочиях
  • Технический форум: список рассылки cf-dev
  • Документация: docs/
  • Документация по API: UAA-APIs.rst
  • Спецификация: The Oauth 2 Authorization Framework
  • LDAP: Интеграция UAA с LDAP

Быстрый старт

Требования:

  • Java 8

Если это сработает, значит, всё в порядке:

$ git clone git://github.com/cloudfoundry/uaa.git
$ cd uaa
$ ./gradlew run

Все приложения работают вместе, запущенные на одном порту (8080): /uaa, /app и /api.

UAA будет вести журнал в файле uaa.log, который можно найти с помощью следующей команды:-

$ sudo find / -name uaa.log

который вы найдете в каталоге, похожем на:-

/private/var/folders/7v/518b18d97_3f4c8fzxphy6f8zcm51c/T/cargo/conf/logs/

Развертывание в Cloud Foundry

Вы также можете собрать приложение и отправить его в Cloud Foundry, например. Рекомендуемый способ — использовать манифест, но вы можете сделать всё из командной строки.

$ ./gradlew :cloudfoundry-identity-uaa:war
$ cf push myuaa --no-start -m 512M -p uaa/build/libs/cloudfoundry-identity-uaa-2.3.2-SNAPSHOT.war 
$ cf set-env myuaa SPRING_PROFILES_ACTIVE default,hsqldb
$ cf set-env myuaa UAA_URL http://myuaa.<domain>
$ cf set-env myuaa LOGIN_URL http://myuaa.<domain>
$ cf set-env myuaa JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'
$ cf set-env myuaa JBP_CONFIG_TOMCAT '{tomcat: { version: 7.0.+ }}'
$ cf start myuaa

В шагах выше замените:

  • myuaa на уникальное имя приложения
  • 2.3.2-SNAPSHOT на соответствующую метку версии из вашей сборки
  • <domain> — это домен вашего приложения. В будущем мы будем получать его из системного окружения
  • Вы также можете предоставить манифест конфигурации, в котором переменная окружения UAA_CONFIG_YAML содержит полную конфигурацию YAML.

Демонстрация использования командной строки на локальном сервере

Сначала запустите сервер UAA, как описано выше:

$ ./gradlew run

Затем откройте другой терминал и из корневого каталога проекта запросите у конечной точки входа информацию о системе:

$ curl -H "Accept: application/json" localhost:8080/uaa/login
{
  "timestamp":"2012-03-28T18:25:49+0100",
  "commit_id":"111274e",
  "prompts":{"username":["text","Username"],
    "password":["password","Password"]
  }
}

Затем вы можете попробовать войти в систему с помощью ruby-gem'а UAA. Убедитесь, что у вас есть ruby 1.9, затем

$ gem install cf-uaac
$ uaac target http://localhost:8080/uaa
$ uaac token get marissa koala

(или не указывайте имя пользователя / пароль, чтобы система запросила их).

Это выполняет аутентификацию и получает от сервера токен доступа с использованием неявного предоставления OAuth2, аналогично подходу, предназначенному для такого клиента, как CF. Токен хранится в ~/.uaac.yml, поэтому загляните в этот файл и извлеките токен доступа для вашего целевого cf (или используйте --verbose в приведенной выше командной строке входа, чтобы увидеть его в журнале вашей консоли).

Затем вы можете войти в систему как сервер ресурсов и получить сведения о токене:

$ uaac target http://localhost:8080/uaa
$ uaac token decode

В stdout вы должны увидеть ваше имя пользователя и client id исходного предоставления токена, например:

  exp: 1355348409
  user_name: marissa
  scope: cloud_controller.read openid password.write scim.userids tokens.read tokens.write
  email: [email protected]
  aud: scim tokens openid cloud_controller password
  jti: ea2fac72-3f51-4c8f-a7a6-5ffc117af542
  user_id: ba14fea0-9d87-4f0c-b59e-32aaa8eb1434
  client_id: cf

Запуск локальной системы с настройками MySQL и PostgreSQL по умолчанию (и информация о миграционных скриптах Flyway)

$ ./gradlew -Dspring.profiles.active=default,mysql run

Эта команда предполагает, что доступна база данных MySQL с настройками доступа по умолчанию, и будет использовать следующие настройки JDBC:

driver = 'org.mariadb.jdbc.Driver'
url = 'jdbc:mysql://localhost:3306/uaa'
user = 'root'
password = 'changeme'
schemas = ['uaa']

Аналогичным образом, если вы выполните команду

$ ./gradlew -Dspring.profiles.active=default,postgresql run

она использует настройки, определенные как

driver = 'org.postgresql.Driver'
url = 'jdbc:postgresql:uaa'
user = 'root'
password = 'changeme'

Эти настройки продублированы в двух местах для интеграции с Gradle. Они определены как значения по умолчанию в XML-файлах конфигурации Spring, а также в основном файле build.gradle. Причина их наличия в файле сборки Gradle в том, что Gradle всегда выполняет задачу flywayClean перед запуском приложения UAA. Если вы не хотите очищать БД, вы можете задать переменную

-Dflyway.clean=false

в составе командной строки. Это отключает задачу flywayClean в скрипте gradle. Другой способ отключить flywayClean — не указывать профили Spring в командной строке, а задать профили в файлах uaa.yml и login.yml.

Демонстрация использования командной строки на run.pivotal.io

Тот же пример с командной строкой должен работать с UAA, запущенным на run.pivotal.io (за исключением части декодирования токена, поскольку у вас не будет секрета клиента). В этом случае нет необходимости запускать локальный сервер uaa, поэтому просто запросите у внешней конечной точки входа информацию о системе:

$ curl -H "Accept: application/json" login.run.pivotal.io
{
  "prompts":{"username":["text","Username"],
    "password":["password","Password"]
  }
}

Затем вы можете попробовать войти в систему с помощью ruby-gem'а UAA. Убедитесь, что у вас есть ruby 1.9, затем

$ gem install cf-uaac
$ uaac target uaa.run.pivotal.io
$ uaac token get [yourusername] [yourpassword]

(или не указывайте имя пользователя / пароль, чтобы система запросила их).

Это выполняет аутентификацию и получает от сервера токен доступа с использованием неявного предоставления OAuth2, точно так же, как это делает клиент типа CF.

Интеграционные тесты

Вы можете запустить интеграционные тесты с помощью

Скачать инструмент