Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cloudfoundry_uaa — CVE-2016-4468 | Kitploit
Strumenti/GitHubGitHub/shanika04/cloudfoundry_uaa
Autenticazione e AutorizzazioneSicurezza dell'Infrastruttura CloudSicurezza CloudDevSecOpsGestione Identità e Accessi (IAM)Sicurezza delle API
GitHubshanika04/cloudfoundry_uaa

cloudfoundry_uaa

CVE-2016-4468

Vedi Repository
145 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
# Server User Account and Authentication (UAA) di CloudFoundry

Build Status Coverage Status

UAA è un servizio di gestione delle identità multi-tenant, utilizzato in Cloud Foundry, ma disponibile anche come server OAuth2 autonomo. Il suo ruolo principale è quello di provider OAuth2, emettendo token che le applicazioni client utilizzano quando agiscono per conto degli utenti di Cloud Foundry. Può anche autenticare gli utenti con le loro credenziali Cloud Foundry e può fungere da servizio SSO usando quelle credenziali (o altre). Dispone di endpoint per la gestione degli account utente, per la registrazione di client OAuth2 e per varie altre funzioni di gestione.

Coordinate

  • Token: Una nota su token, scope e autorità
  • Forum tecnico: cf-dev mailing list
  • Documentazione: docs/
  • Documentazione API: UAA-APIs.rst
  • Specifica: The Oauth 2 Authorization Framework
  • LDAP: Integrazione LDAP con UAA

Avvio rapido

Requisiti:

  • Java 8

Se funziona, sei a posto:

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

Tutte le app funzionano insieme, con le applicazioni in esecuzione sulla stessa porta (8080) come /uaa, /app e /api.

UAA registrerà un log in un file chiamato uaa.log, che può essere trovato usando il seguente comando:-

$ sudo find / -name uaa.log

che dovresti trovare in un percorso simile a:-

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

Distribuzione su Cloud Foundry

Puoi anche compilare l'app e caricarla su Cloud Foundry, ad esempio. Il nostro metodo consigliato è usare un file manifest, ma puoi fare tutto dalla riga di comando.

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

Nei passaggi precedenti, sostituisci:

  • myuaa con un nome applicazione univoco
  • 2.3.2-SNAPSHOT con l'etichetta di versione appropriata dalla tua build
  • <domain> è il dominio della tua app. In futuro lo leggeremo dall'ambiente di sistema.
  • Puoi anche fornire un manifest di configurazione in cui la variabile d'ambiente UAA_CONFIG_YAML contiene la configurazione yaml completa.

Demo dell'utilizzo da riga di comando sul server locale

Prima esegui il server UAA come descritto sopra:

$ ./gradlew run

Poi apri un altro terminale e, dalla directory base del progetto, chiedi all'endpoint di login di fornirti informazioni sul sistema:

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

Poi puoi provare ad accedere con la gemma ruby di UAA. Assicurati di avere ruby 1.9, quindi

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

(oppure ometti nome utente / password per ricevere il prompt).

Questo autentica e ottiene un token di accesso dal server usando la concessione implicita OAuth2, simile all'approccio previsto per un client come CF. Il token viene salvato in ~/.uaac.yml, quindi esamina quel file ed estrai il token di accesso per il tuo target cf (oppure usa --verbose nella riga di comando di login sopra per vederlo registrato nella tua console).

Poi puoi accedere come resource server e recuperare i dettagli del token:

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

Dovresti vedere il tuo nome utente e il client id della concessione del token originale su stdout, ad esempio:

  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

Esecuzione del sistema locale con le impostazioni predefinite di MySQL e PostgreSQL (e informazioni sugli script di migrazione Flyway)

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

Questo comando presuppone che sia disponibile un database MySQL con le impostazioni di accesso predefinite e risponde alle seguenti impostazioni JDBC.

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

In modo simile, se esegui il comando

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

Vengono usate le impostazioni definite come

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

Queste impostazioni sono duplicate in due punti per l'integrazione con Gradle. Sono definite come predefinite nei file di configurazione Spring XML e nel file principale build.gradle. Il motivo per cui si trovano nel file di build Gradle è che Gradle esegua sempre l'attività flywayClean prima di avviare l'applicazione UAA. Se non vuoi pulire il database, puoi definire la variabile

-Dflyway.clean=false

come parte della riga di comando. Questo disabilita l'attività flywayClean nello script gradle. Un altro modo per disabilitare flywayClean è non specificare i profili spring nella riga di comando, ma impostare i profili nei file uaa.yml e login.yml.

Demo dell'utilizzo da riga di comando su run.pivotal.io

Lo stesso esempio da riga di comando dovrebbe funzionare con un UAA in esecuzione su run.pivotal.io (tranne per la decodifica del token, perché non avrai il client secret). In questo caso non è necessario eseguire un server uaa locale: basta chiedere all'endpoint di login esterno di fornire informazioni sul sistema:

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

Puoi quindi provare ad accedere con la gemma ruby di UAA. Assicurati di avere ruby 1.9, quindi

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

(oppure ometti nome utente / password per ricevere il prompt).

Questo autentica e ottiene un token di accesso dal server usando la concessione implicita OAuth2, la stessa usata da un client come CF.

Test di integrazione

Puoi eseguire i test di integrazione con

Scarica lo strumento