AWS - API Gateway Unauthenticated Enum
API Invoke bypass
Alexandre & Leonardo tarafından sunulan API'ler için Saldırı Vektörleri - AWS API Gateway Lambda Yetkilendiricilerini Kullanan Saldırı Vektörleri adlı konuşmaya göre, Lambda Yetkilendiricileri, API uç noktalarını çağırmak için izin vermek için IAM sözdizimini kullanarak yapılandırılabilir. Bu, belgelerden alınmıştır:
Bu yöntemle uç noktaları çağırmak için izin verme sorunu, "*" her şeyi ima ettiği için ve artık desteklenmeyen regex sözdizimi olmadığı gerçeğindedir.
Bazı örnekler:
Her kullanıcıya
/dashboard/user/{username}
erişimini vermek içinarn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
gibi bir kural, örneğin/admin/dashboard/createAdmin
gibi diğer rotalara erişim sağlayacaktır.
"*" kesmelerle genişlemeyi durdurmaz, bu nedenle örneğin api-id'de "*" kullanırsanız, son regex hala geçerli olduğu sürece "herhangi bir aşama" veya "herhangi bir yöntem" de belirtebilir.
Bu nedenle arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Örneğin /prod/GET/dashboard/admin
yoluna bir post isteğini doğrulayabilir.
Her zaman kimin erişimine izin vermek istediğinizi net bir şekilde belirlemeli ve ardından verilen izinlerle diğer senaryoların mümkün olup olmadığını kontrol etmelisiniz.
Daha fazla bilgi için, belgelerin yanı sıra, bu resmi aws github içinde yetkilendirme uygulamak için kod bulabilirsiniz.
IAM Politikası Enjeksiyonu
Aynı sunumda belirtildiği gibi, kodun kullanıcı girdisini kullanarak IAM politikalarını oluşturduğu durumda, joker karakterler (ve "." veya belirli dizeler gibi diğerleri) kısıtlamaları atlamak amacıyla içine dahil edilebilir.
Genel URL şablonu
Genel API Gateway URL'sinden Hesap Kimliği Alın
S3 kovaları, Veri Değişimi ve Lambda URL geçitleri gibi, genel bir API Gateway URL'sinden bir hesabın aws:ResourceAccount
Politika Koşul Anahtarı kötüye kullanılarak hesap kimliğini bulmak mümkündür. Bu, politikanın aws:ResourceAccount
bölümünde joker karakterlerini kötüye kullanarak hesap kimliğini bir karakter at a time bulmayı sağlar.
Bu teknik ayrıca, etiket değerlerini almanıza da olanak tanır, etiket anahtarını bildiğiniz sürece (bazı varsayılan ilginç olanlar var).
Daha fazla bilgiyi orijinal araştırmada ve bu sömürüyü otomatikleştirmek için conditional-love aracında bulabilirsiniz.
Last updated