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
  • विनिर्देश: OAuth 2 प्राधिकरण ढांचा
  • 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"]
  }
}

फिर आप UAA रूबी जेम से लॉगिन करने का प्रयास कर सकते हैं। सुनिश्चित करें कि आपके पास रूबी 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

आपको अपना उपयोगकर्ता नाम और मूल टोकन ग्रांट का क्लाइंट id stdout पर देखना चाहिए, उदाहरण के लिए:

  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 एकीकरण के लिए दो स्थानों पर दोहराई गई हैं। वे Spring XML कॉन्फ़िगरेशन फ़ाइलों में डिफ़ॉल्ट के रूप में परिभाषित हैं, और वे मुख्य build.gradle फ़ाइल में भी परिभाषित हैं। इसका कारण वे Gradle बिल्ड फ़ाइल में हैं, यह है कि Gradle UAA एप्लिकेशन लॉन्च करने से पहले हमेशा flywayClean कार्य निष्पादित करता है। यदि आप DB को साफ नहीं करना चाहते हैं, तो आप निम्न चर को परिभाषित कर सकते हैं

-Dflyway.clean=false

यह ग्रैडल स्क्रिप्ट में flywayClean कार्य को अक्षम कर देता है। flywayClean को अक्षम करने का दूसरा तरीका कमांड लाइन पर स्प्रिंग प्रोफाइल निर्दिष्ट न करना है, बल्कि प्रोफाइल को uaa.yml और login.yml फ़ाइलों में सेट करना है।

run.pivotal.io पर कमांड लाइन उपयोग का डेमो

वही कमांड लाइन उदाहरण run.pivotal.io पर चल रहे UAA के विरुद्ध काम करना चाहिए (टोकन डिकोडिंग भाग को छोड़कर, क्योंकि आपके पास क्लाइंट सीक्रेट नहीं होगा)। इस मामले में, स्थानीय uaa सर्वर चलाने की कोई आवश्यकता नहीं है, इसलिए बस बाहरी लॉगिन एंडपॉइंट से सिस्टम के बारे में बताने के लिए कहें:

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

फिर आप UAA रूबी जेम से लॉगिन करने का प्रयास कर सकते हैं। सुनिश्चित करें कि आपके पास रूबी 1.9 है, फिर

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

(या प्रॉम्प्ट के लिए उपयोगकर्ता नाम / पासवर्ड छोड़ दें)।

यह प्रमाणित करता है और OAuth2 इम्प्लिसिट ग्रांट का उपयोग करके सर्वर से एक एक्सेस टोकन प्राप्त करता है, वही जो CF जैसे क्लाइंट द्वारा उपयोग किया जाता है।

एकीकरण परीक्षण

आप एकीकरण परीक्षण इस प्रकार चला सकते हैं

$ ./gradlew integrationTest

यह स्थानीय Apache Tomcat इंस्टेंस में चल रहे uaa सर्वर के विरुद्ध एकीकरण परीक्षण चलाएगा, उदाहरण के लिए सेवा URL http://localhost:8080/uaa (डिफ़ॉल्ट रूप से) पर सेट है।

आप CLOUD_FOUNDRY_CONFIG_PATH को uaa.yml पकड़ने के लिए इंगित कर सकते हैं जहाँ URLs बदले जा सकते हैं और (यदि उपयुक्त हो) सर्वर चलाने के लिए कॉन्टेक्स्ट रूट सेट कर सकते हैं (इसके बारे में अधिक जानकारी के लिए नीचे देखें)।

कस्टम YAML कॉन्फ़िगरेशन

रनटाइम पैरामीटर संशोधित करने के लिए आप एक uaa.yml प्रदान कर सकते हैं, जैसे:

टूल डाउनलोड करें