AWS - API Gateway Unauthenticated Enum

Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

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:

{
"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"
]
}
]
}

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çin arn: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

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

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.

Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated