AWS - API Gateway Unauthenticated Enum
API Invoke bypass
Według prezentacji Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, Lambda Authorizers mogą być skonfigurowane używając składni IAM do nadawania uprawnień do wywoływania punktów końcowych API. To jest zaczerpnięte z dokumentacji:
Problem z tym sposobem nadawania uprawnień do wywoływania punktów końcowych polega na tym, że "*" oznacza "cokolwiek" i nie ma więcej obsługiwanej składni regex.
Kilka przykładów:
Reguła taka jak
arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
, aby dać każdemu użytkownikowi dostęp do/dashboard/user/{username}
, da im również dostęp do innych tras, takich jak/admin/dashboard/createAdmin
na przykład.
Należy zauważyć, że "*" nie przestaje się rozszerzać z ukośnikami, dlatego, jeśli użyjesz "*" w api-id na przykład, może to również oznaczać "dowolny etap" lub "dowolną metodę", o ile końcowy regex jest nadal ważny.
Więc arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Może zweryfikować żądanie post do etapu testowego na ścieżkę /prod/GET/dashboard/admin
na przykład.
Zawsze powinieneś mieć jasność, co chcesz umożliwić do dostępu, a następnie sprawdzić, czy inne scenariusze są możliwe z nadanymi uprawnieniami.
Więcej informacji, oprócz dokumentacji, można znaleźć w kodzie do implementacji autoryzatorów w tym oficjalnym github aws.
Wstrzykiwanie Polityki IAM
W tej samej prezentacji jest przedstawiony fakt, że jeśli kod używa danych wejściowych użytkownika do generowania polityk IAM, mogą być tam zawarte wildcardy (i inne, takie jak "." lub specyficzne ciągi znaków) w celu obejścia ograniczeń.
Publiczny szablon URL
Get Account ID from public API Gateway URL
Podobnie jak w przypadku S3 buckets, Data Exchange i Lambda URLs gateways, możliwe jest znalezienie ID konta, wykorzystując aws:ResourceAccount
Policy Condition Key z publicznego API Gateway URL. Odbywa się to poprzez znajdowanie ID konta znak po znaku, wykorzystując wildcardy w sekcji aws:ResourceAccount
polityki.
Ta technika pozwala również uzyskać wartości tagów, jeśli znasz klucz tagu (istnieją pewne domyślne interesujące).
Więcej informacji znajdziesz w oryginalnym badaniu oraz narzędziu conditional-love do automatyzacji tej eksploatacji.
Last updated