Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cloudfoundry_uaa — CVE-2016-4468 | Kitploit
Ferramentas/GitHubGitHub/shanika04/cloudfoundry_uaa
Autenticação e AutorizaçãoSegurança de Infraestrutura em NuvemSegurança na NuvemDevSecOpsGerenciamento de Identidade e Acesso (IAM)Segurança de API
GitHubshanika04/cloudfoundry_uaa

cloudfoundry_uaa

CVE-2016-4468

Ver Repositório
14há 5 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
# Servidor de Conta de Usuário e Autenticação (UAA) do CloudFoundry

Build Status Coverage Status

O UAA é um serviço de gerenciamento de identidade multi-inquilino, usado no Cloud Foundry, mas também disponível como um servidor OAuth2 independente. Sua função principal é como um provedor OAuth2, emitindo tokens para aplicações cliente usarem quando agem em nome de usuários do Cloud Foundry. Ele também pode autenticar usuários com suas credenciais do Cloud Foundry e pode atuar como um serviço SSO usando essas credenciais (ou outras). Possui endpoints para gerenciamento de contas de usuário e para registro de clientes OAuth2, bem como várias outras funções de gerenciamento.

Coordenadas

  • Tokens: Uma nota sobre tokens, escopos e autoridades
  • Fórum técnico: Lista de discussão cf-dev
  • Documentação: docs/
  • Documentação da API: UAA-APIs.rst
  • Especificação: The Oauth 2 Authorization Framework
  • LDAP: Integração LDAP do UAA

Início Rápido

Requisitos:

  • Java 8

Se isso funcionar, você está no caminho certo:

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

Os aplicativos funcionam juntos com os aplicativos rodando na mesma porta (8080) como /uaa, /app e /api.

O UAA registrará em um arquivo chamado uaa.log, que pode ser encontrado usando o seguinte comando:-

$ sudo find / -name uaa.log

que você deve encontrar em algo como:-

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

Implantar no Cloud Foundry

Você também pode construir o aplicativo e enviá-lo para o Cloud Foundry, por exemplo. Nossa maneira recomendada é usar um arquivo de manifesto, mas você pode fazer tudo na linha de 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

Nas etapas acima, substitua:

  • myuaa por um nome de aplicativo único
  • 2.3.2-SNAPSHOT pelo rótulo de versão apropriado da sua compilação
  • <domain> pelo domínio do seu aplicativo. No futuro, faremos o parsing disso a partir do ambiente do sistema.
  • Você também pode fornecer um manifesto de configuração onde a variável de ambiente UAA_CONFIG_YAML contém o yaml de configuração completo.

Demonstração de uso da linha de comando no servidor local

Primeiro execute o servidor UAA conforme descrito acima:

$ ./gradlew run

Em seguida, inicie outro terminal e, a partir do diretório base do projeto, peça ao endpoint de login para informá-lo sobre o 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"]
  }
}

Então você pode tentar fazer login com a gem ruby UAA. Certifique-se de ter ruby 1.9, então

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

(ou omita o nome de usuário / senha para ser solicitado).

Isso autentica e obtém um token de acesso do servidor usando a concessão implícita OAuth2, semelhante à abordagem destinada a um cliente como o CF. O token é armazenado em ~/.uaac.yml, então examine esse arquivo e retire o token de acesso para o seu destino cf (ou use --verbose na linha de comando de login acima para vê-lo registrado no seu console).

Então você pode fazer login como um servidor de recursos e recuperar os detalhes do token:

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

Você deve ver seu nome de usuário e o id do cliente da concessão original do token no stdout, por exemplo:

  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

Executando sistema local com configurações padrão do MySQL e PostgreSQL (e informações de script de migração Flyway)

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

Este comando assume que existe um banco de dados MySQL disponível com as configurações padrão de acesso e responderá às seguintes configurações JDBC.

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

De maneira semelhante, se você executar o comando

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

Ele usa as configurações definidas como

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

Essas configurações são duplicadas em dois lugares para a integração Gradle. Elas são definidas como padrão nos arquivos de configuração Spring XML e são definidas no arquivo build.gradle principal. A razão pela qual estão no arquivo de compilação Gradle é para que, durante a execução, o Gradle execute sempre a tarefa flywayClean antes de iniciar o aplicativo UAA. Se você não quiser limpar o banco de dados, pode definir a variável

-Dflyway.clean=false

como parte da sua linha de comando. Isso desabilita a tarefa flywayClean no script gradle. Outra maneira de desabilitar o flywayClean é não especificar os perfis Spring na linha de comando, mas definir os perfis nos arquivos uaa.yml e login.yml.

Demonstração de uso da linha de comando no run.pivotal.io

O mesmo exemplo de linha de comando deve funcionar contra um UAA rodando no run.pivotal.io (exceto pela parte de decodificação do token, pois você não terá o segredo do cliente). Neste caso, não há necessidade de executar um servidor uaa local, então simplesmente peça ao endpoint de login externo para informá-lo sobre o sistema:

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

Então você pode tentar fazer login com a gem ruby UAA. Certifique-se de ter ruby 1.9, então

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

(ou omita o nome de usuário / senha para ser solicitado).

Isso autentica e obtém um token de acesso do servidor usando a concessão implícita OAuth2, a mesma usada por um cliente como o CF.

Testes de integração

Você pode executar os testes de integração com

Baixar ferramenta