AWS - API Gateway Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking: Learn & practice GCP Hacking:
Selon la présentation , les Lambda Authorizers peuvent être configurés en utilisant la syntaxe IAM pour donner des permissions d'invocation des points de terminaison de l'API. Cela est tiré :
Le problème avec cette façon de donner des permissions pour invoquer des points de terminaison est que le "*" implique "tout" et qu'il n'y a plus de syntaxe regex supportée.
Quelques exemples :
Une règle telle que arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
afin de donner à chaque utilisateur accès à /dashboard/user/{username}
leur donnera accès à d'autres routes telles que /admin/dashboard/createAdmin
par exemple.
Notez que "*" ne cesse pas de s'étendre avec des barres obliques, donc, si vous utilisez "*" dans api-id par exemple, cela pourrait également indiquer "n'importe quelle étape" ou "n'importe quelle méthode" tant que la regex finale est toujours valide.
Ainsi, arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Peut valider une requête post pour tester l'étape vers le chemin /prod/GET/dashboard/admin
par exemple.
Vous devez toujours avoir clairement en tête ce que vous souhaitez autoriser à accéder et ensuite vérifier si d'autres scénarios sont possibles avec les permissions accordées.
Tout comme avec les buckets S3, les passerelles Data Exchange et Lambda, il est possible de trouver l'ID de compte d'un compte en abusant de la aws:ResourceAccount
Policy Condition Key à partir d'une URL publique de l'API Gateway. Cela se fait en trouvant l'ID de compte un caractère à la fois en abusant des jokers dans la section aws:ResourceAccount
de la politique.
Cette technique permet également d'obtenir des valeurs de tags si vous connaissez la clé du tag (il y en a quelques-unes par défaut intéressantes).
Pour plus d'infos, en plus des , vous pouvez trouver du code pour implémenter des autorisateurs dans .
Dans la même , il est exposé le fait que si le code utilise l'entrée utilisateur pour générer les politiques IAM, des jokers (et d'autres tels que "." ou des chaînes spécifiques) peuvent y être inclus dans le but de contourner les restrictions.
Vous pouvez trouver plus d'informations dans la et l'outil pour automatiser cette exploitation.
Apprenez et pratiquez le Hacking AWS : Apprenez et pratiquez le Hacking GCP :
Consultez les !
Rejoignez le 💬 ou le ou suivez nous sur Twitter 🐦 .
Partagez des astuces de hacking en soumettant des PRs aux et dépôts github.