AWS - API Gateway Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Zgodnie z prezentacją Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, Lambda Authorizers mogą być konfigurowane przy użyciu składni IAM w celu nadania uprawnień do wywoływania punktów końcowych API. To jest wzięte z dokumentacji:
Problem z tym sposobem nadawania uprawnień do wywoływania punktów końcowych polega na tym, że "*" oznacza "cokolwiek" i nie obsługuje więcej 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.
Zauważ, że "*" nie przestaje się rozwijać 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.
Tak więc arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Może zwalidować żądanie POST do etapu testowego do ścieżki /prod/GET/dashboard/admin
, na przykład.
Zawsze powinieneś mieć jasno określone, co chcesz zezwolić na dostęp, a następnie sprawdzić, czy inne scenariusze są możliwe z przyznanymi uprawnieniami.
Aby uzyskać więcej informacji, oprócz dokumentacji, możesz znaleźć kod do implementacji autoryzatorów w tym oficjalnym repozytorium aws na githubie.
W tej samej prezentacji ujawniono fakt, że jeśli kod używa wejścia od użytkownika do generowania polityk IAM, dzikie znaki (i inne, takie jak "." lub konkretne ciągi) mogą być tam zawarte w celu obejścia ograniczeń.
Podobnie jak w przypadku koszyków S3, Data Exchange i adresów URL bramek Lambda, możliwe jest znalezienie identyfikatora konta, wykorzystując aws:ResourceAccount
Policy Condition Key z publicznego adresu URL API Gateway. Robi się to, znajdując identyfikator konta jeden znak na raz, wykorzystując znaki wieloznaczne w sekcji aws:ResourceAccount
polityki.
Ta technika pozwala również uzyskać wartości tagów, jeśli znasz klucz tagu (jest kilka domyślnych, interesujących).
Możesz znaleźć więcej informacji w oryginalnych badaniach oraz w narzędziu conditional-love, aby zautomatyzować tę eksploitację.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)