Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cloudfoundry_uaa — CVE-2016-4468 | Kitploit
Tools/GitHubGitHub/shanika04/cloudfoundry_uaa
Authentifizierung & AutorisierungCloud-Infrastruktur-SicherheitCloud-SicherheitDevSecOpsIdentitäts- & Zugriffsmanagement (IAM)API-Sicherheit
GitHubshanika04/cloudfoundry_uaa

cloudfoundry_uaa

CVE-2016-4468

Repository anzeigen
16vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
# CloudFoundry Benutzerkonto- und Authentifizierungsserver (UAA)

Build Status Coverage Status

Der UAA ist ein Multi-Tenant-Identity-Management-Dienst, der in Cloud Foundry verwendet wird, aber auch als eigenständiger OAuth2-Server verfügbar ist. Seine Hauptaufgabe ist als OAuth2-Anbieter, der Token für Client-Anwendungen ausstellt, wenn diese im Namen von Cloud Foundry-Benutzern handeln. Er kann Benutzer auch mit ihren Cloud Foundry-Anmeldedaten authentifizieren und als SSO-Dienst mit diesen (oder anderen) Anmeldedaten fungieren. Er hat Endpunkte zur Verwaltung von Benutzerkonten und zur Registrierung von OAuth2-Clients sowie verschiedene andere Verwaltungsfunktionen.

Koordinaten

  • Tokens: Eine Anmerkung zu Tokens, Scopes und Berechtigungen
  • Technisches Forum: cf-dev Mailingliste
  • Dokumentation: docs/
  • API-Dokumentation: UAA-APIs.rst
  • Spezifikation: Das OAuth 2 Authorization Framework
  • LDAP: UAA LDAP-Integration

Schnellstart

Voraussetzungen:

  • Java 8

Wenn dies funktioniert, sind Sie startklar:

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

Alle Apps arbeiten zusammen, wobei die Apps auf demselben Port (8080) als /uaa, /app und /api laufen.

UAA loggt in eine Datei namens uaa.log, die mit folgendem Befehl gefunden werden kann:

$ sudo find / -name uaa.log

die Sie in etwa unter folgendem Pfad finden sollten:

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

In Cloud Foundry bereitstellen

Sie können die App auch erstellen und in Cloud Foundry pushen, z. B. Unsere empfohlene Methode ist die Verwendung einer Manifestdatei, aber Sie können alles über die Befehlszeile erledigen.

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

Ersetzen Sie in den obigen Schritten:

  • myuaa durch einen eindeutigen Anwendungsnamen
  • 2.3.2-SNAPSHOT durch die entsprechende Versionsbezeichnung aus Ihrem Build
  • <domain> durch Ihre App-Domain. Wir werden dies in Zukunft aus der Systemumgebung parsen.
  • Sie können auch ein Konfigurationsmanifest bereitstellen, in dem die Umgebungsvariable UAA_CONFIG_YAML die vollständige Konfiguration als YAML enthält.

Demo der Befehlszeilennutzung auf lokalem Server

Führen Sie zuerst den UAA-Server wie oben beschrieben aus:

$ ./gradlew run

Starten Sie dann ein weiteres Terminal und fragen Sie vom Projektverzeichnis aus den Login-Endpunkt nach Informationen über das System:

$ 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"]
  }
}

Dann können Sie versuchen, sich mit dem UAA Ruby-Gem anzumelden. Stellen Sie sicher, dass Sie Ruby 1.9 haben, dann

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

(oder lassen Sie Benutzername / Passwort weg, um dazu aufgefordert zu werden).

Dies authentifiziert und erhält ein Zugriffstoken vom Server mithilfe des OAuth2-Implicit-Grant, ähnlich dem Ansatz, der für einen Client wie CF vorgesehen ist. Das Token wird in ~/.uaac.yml gespeichert. Schauen Sie in diese Datei und extrahieren Sie das Zugriffstoken für Ihr cf-Ziel (oder verwenden Sie --verbose in der obigen Login-Befehlszeile, um es auf Ihrer Konsole zu protokollieren).

Dann können Sie sich als Ressourcenserver anmelden und die Token-Details abrufen:

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

Sie sollten Ihren Benutzernamen und die Client-ID der ursprünglichen Token-Gewährung auf stdout sehen, z. B.

  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

Ausführen des lokalen Systems mit Standard-MySQL- und PostgreSQL-Einstellungen (und Flyway-Migrationsskript-Informationen)

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

Dieser Befehl geht davon aus, dass eine MySQL-Datenbank mit den Standardzugriffseinstellungen verfügbar ist und auf die folgenden JDBC-Einstellungen reagiert.

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

In ähnlicher Weise, wenn Sie den Befehl ausführen

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

verwendet er die folgenden Einstellungen:

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

Diese Einstellungen sind an zwei Stellen für die Gradle-Integration dupliziert. Sie sind als Standardeinstellungen in den Spring-XML-Konfigurationsdateien definiert und in der Hauptdatei build.gradle. Der Grund, warum sie in der Gradle-Build-Datei stehen, ist, dass Gradle vor dem Start der UAA-Anwendung immer die FlywayClean-Aufgabe ausführt. Wenn Sie die Datenbank nicht bereinigen möchten, können Sie die Variable

-Dflyway.clean=false

als Teil Ihrer Befehlszeile definieren. Dies deaktiviert die FlywayClean-Aufgabe im Gradle-Skript. Eine andere Möglichkeit, FlywayClean zu deaktivieren, besteht darin, die Spring-Profile nicht über die Befehlszeile anzugeben, sondern die Profile in den Dateien uaa.yml und login.yml zu setzen.

Demo der Befehlszeilennutzung auf run.pivotal.io

Das gleiche Befehlszeilenbeispiel sollte auch gegen eine UAA funktionieren, die auf run.pivotal.io läuft (mit Ausnahme des Token-Decodierungsteils, da Sie das Client-Secret nicht haben). In diesem Fall muss kein lokaler UAA-Server laufen. Fragen Sie einfach den externen Login-Endpunkt nach Informationen über das System:

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

Sie können dann versuchen, sich mit dem UAA Ruby-Gem anzumelden. Stellen Sie sicher, dass Sie Ruby 1.9 haben, dann

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

(oder lassen Sie Benutzername / Passwort weg, um dazu aufgefordert zu werden).

Dies authentifiziert und erhält ein Zugriffstoken vom Server mithilfe des OAuth2-Implicit-Grant, der gleiche, der auch von einem Client wie CF verwendet wird.

Integrationstests

Sie können die Integrationstests mit folgendem Befehl ausführen:

$ ./gradlew integrationTest
Tool herunterladen