GCP - Artifact Registry Persistence

Support HackTricks

Artifact Registry

Artifact Registry के बारे में अधिक जानकारी के लिए देखें:

GCP - Artifact Registry Enum

Dependency Confusion

  • क्या होता है अगर एक remote और एक standard repositories एक virtual में मिलाए जाते हैं और एक package दोनों में मौजूद है?

  • वर्चुअल रिपॉजिटरी में सेट की गई उच्चतम प्राथमिकता वाला उपयोग किया जाता है

  • यदि प्राथमिकता समान है:

  • यदि संस्करण समान है, तो नीति का नाम वर्णानुक्रम में पहले वर्चुअल रिपॉजिटरी में उपयोग किया जाता है

  • यदि नहीं, तो उच्चतम संस्करण का उपयोग किया जाता है

इसलिए, यदि remote repository की प्राथमिकता उच्च या समान है, तो एक सार्वजनिक package registry में उच्चतम संस्करण (dependency confusion) का दुरुपयोग करना संभव है

यह तकनीक persistence और unauthenticated access के लिए उपयोगी हो सकती है क्योंकि इसे दुरुपयोग करने के लिए केवल Artifact Registry में संग्रहीत एक लाइब्रेरी का नाम जानना आवश्यक है और सार्वजनिक रिपॉजिटरी (उदाहरण के लिए Python के लिए PyPi) में उसी लाइब्रेरी को उच्च संस्करण के साथ बनाना आवश्यक है।

persistence के लिए आपको निम्नलिखित चरणों का पालन करना होगा:

  • आवश्यकताएँ: एक वर्चुअल रिपॉजिटरी का अस्तित्व होना चाहिए और इसका उपयोग किया जाना चाहिए, एक आंतरिक पैकेज जिसका नाम सार्वजनिक रिपॉजिटरी में मौजूद नहीं है, का उपयोग किया जाना चाहिए।

  • यदि यह मौजूद नहीं है तो एक remote repository बनाएं

  • वर्चुअल रिपॉजिटरी में remote repository जोड़ें

  • वर्चुअल रजिस्ट्री की नीतियों को संपादित करें ताकि remote repository को उच्च प्राथमिकता (या समान) दी जा सके। कुछ ऐसा चलाएँ:

  • वैध पैकेज डाउनलोड करें, अपने दुर्भावनापूर्ण कोड को जोड़ें और इसे उसी संस्करण के साथ सार्वजनिक रिपॉजिटरी में पंजीकृत करें। हर बार जब एक डेवलपर इसे स्थापित करता है, तो वह आपका स्थापित करेगा!

Dependency confusion के बारे में अधिक जानकारी के लिए देखें:

Support HackTricks

Last updated