AWS - API Gateway Unauthenticated Enum
Last updated
Last updated
Lernen & üben Sie AWS Hacking: Lernen & üben Sie GCP Hacking:
Laut dem Vortrag können Lambda Authorizers unter Verwendung der IAM-Syntax konfiguriert werden, um Berechtigungen zum Aufrufen von API-Endpunkten zu gewähren. Dies stammt :
Das Problem mit dieser Methode, Berechtigungen zum Aufrufen von Endpunkten zu erteilen, ist, dass das "*" "alles" impliziert und keine weiteren Regex-Syntax unterstützt wird.
Einige Beispiele:
Eine Regel wie arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
, um jedem Benutzer Zugriff auf /dashboard/user/{username}
zu gewähren, gibt ihnen auch Zugriff auf andere Routen wie /admin/dashboard/createAdmin
, zum Beispiel.
Beachten Sie, dass "*" nicht aufhört, sich mit Schrägstrichen zu erweitern, daher könnte die Verwendung von "*" im api-id beispielsweise auch "jede Stufe" oder "jede Methode" anzeigen, solange der endgültige Regex weiterhin gültig ist.
Also arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Kann eine POST-Anfrage an die Teststufe zum Pfad /prod/GET/dashboard/admin
validieren, zum Beispiel.
Sie sollten immer klar haben, was Sie erlauben möchten, und dann überprüfen, ob andere Szenarien mit den erteilten Berechtigungen möglich sind.
Genau wie bei S3-Buckets, Data Exchange und Lambda-URLs-Gateways ist es möglich, die Konto-ID eines Kontos zu finden, indem man den aws:ResourceAccount
Policy Condition Key von einer öffentlichen API-Gateway-URL ausnutzt. Dies geschieht, indem man die Konto-ID Zeichen für Zeichen findet und Wildcards im aws:ResourceAccount
-Abschnitt der Richtlinie ausnutzt.
Diese Technik ermöglicht es auch, Werte von Tags abzurufen, wenn man den Tag-Schlüssel kennt (es gibt einige standardmäßige interessante).
Für weitere Informationen, abgesehen von den , finden Sie Code zur Implementierung von Authorizern in .
In der gleichen wird das Faktum angesprochen, dass, wenn der Code Benutzereingaben verwendet, um die IAM-Richtlinien zu generieren, Wildcards (und andere wie "." oder spezifische Strings) dort enthalten sein können, mit dem Ziel, Einschränkungen zu umgehen.
Weitere Informationen finden Sie in der und dem Tool , um diese Ausnutzung zu automatisieren.
Lernen & üben Sie AWS Hacking: Lernen & üben Sie GCP Hacking:
Überprüfen Sie die !
Treten Sie der 💬 oder der bei oder folgen Sie uns auf Twitter 🐦 .
Teilen Sie Hacking-Tricks, indem Sie PRs an die und GitHub-Repos senden.