AWS - API Gateway Unauthenticated Enum

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

API Invoke बायपास

वीडियो Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo के अनुसार, Lambda Authorizers को IAM सिंटैक्स का उपयोग करके कॉन्फ़िगर किया जा सकता है ताकि API एंडपॉइंट को इनवोक करने की अनुमति दी जा सके। यह दस्तावेज़ से लिया गया है:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Permission",
"Action": [
"execute-api:Execution-operation"
],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}

इस तरीके से अंत्यों को अंतर्वादन की अनुमतियाँ देने की समस्या यह है कि "*" किसी भी चीज को सूचित करता है और कोई अधिक regex सिंटैक्स समर्थित नहीं है

कुछ उदाहरण:

  • एक नियम जैसे arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/* हर उपयोगकर्ता को /dashboard/user/{username} तक पहुंच प्रदान करने के लिए अनुमति देने के लिए उन्हें /admin/dashboard/createAdmin जैसे अन्य मार्गों तक पहुंच प्रदान करेगा।

ध्यान दें कि "*" स्लैश के साथ विस्तारित होना नहीं रोकता, इसलिए, यदि आप उदाहरण के लिए api-id में "*" का उपयोग करते हैं, तो यह "कोई भी स्टेज" या "कोई भी विधि" को भी सूचित कर सकता है जब तक अंतिम regex अभी भी मान्य हो। इसलिए arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/* उदाहरण के लिए /prod/GET/dashboard/admin पथ के लिए पोस्ट अनुरोध की पुष्टि कर सकता है।

आपको हमेशा स्पष्ट रखना चाहिए कि आप किसे पहुंचने की अनुमति देना चाहते हैं और फिर जांचना चाहिए कि अनुमतियों द्वारा प्रदान की गई अन्य स्थितियाँ संभव हैं या नहीं।

अधिक जानकारी के लिए, दस्तावेज़ के अलावा, आप इस आधिकारिक aws github में ऑथराइज़र्स को लागू करने के लिए कोड पा सकते हैं।

IAM नीति अंधापन

उसी बातचीत में यह उजागर किया गया है कि यदि कोड उपयोगकर्ता इनपुट का उपयोग कर रहा है IAM नीतियाँ उत्पन्न करने के लिए, तो वाइल्डकार्ड (और अन्य जैसे "." या विशिष्ट स्ट्रिंग्स) उसमें शामिल किए जा सकते हैं जिनका उद्देश्य प्रतिबंधों को छलना है।

सार्वजनिक URL टेम्पलेट

https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

पब्लिक API Gateway URL से खाता आईडी प्राप्त करें

S3 बकेट्स, डेटा एक्सचेंज और लैम्बडा URL गेटवे की तरह, पब्लिक API Gateway URL से खाते की आईडी पाना संभव है जब आप aws:ResourceAccount नीति शर्त कंडीशन की का दुरुपयोग करते हैं। यह उस खाते की आईडी को ढूंढने के लिए किया जाता है जिसमें नीति के aws:ResourceAccount खंड में वाइल्डकार्ड का दुरुपयोग किया जाता है। यह तकनीक यदि आप टैग कुंजी को जानते हैं तो टैग के मान भी प्राप्त करने की अनुमति देती है (कुछ डिफ़ॉल्ट दिलचस्प वाले होते हैं)।

आप इस शोध में अधिक जानकारी पा सकते हैं मूल शोध और उपकरण conditional-love का उपयोग करके इस शोषण को स्वचालित करने के लिए।

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated