AWS - API Gateway Unauthenticated Enum
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
API Invoke bypass
De acordo com a palestra Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, Lambda Authorizers podem ser configurados usando sintaxe IAM para conceder permissÔes para invocar API endpoints. Isso foi retirado from the docs:
{
"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"
]
}
]
}
O problema com essa forma de conceder permissĂ”es para invocar endpoints Ă© que o â*â implica âqualquer coisaâ e nĂŁo hĂĄ mais sintaxe de regex suportada.
Alguns exemplos:
- Uma regra como
arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*para dar a cada usuĂĄrio acesso a/dashboard/user/{username}darĂĄ a eles acesso a outras rotas como/admin/dashboard/createAdmin, por exemplo.
Warning
Observe que â*â nĂŁo para de se expandir com barras, portanto, se vocĂȘ usar â*â em api-id por exemplo, isso tambĂ©m pode indicar âqualquer etapaâ ou âqualquer mĂ©todoâ desde que o regex final ainda seja vĂĄlido.
Soarn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Pode validar uma requisição POST para o stage test no caminho/prod/GET/dashboard/admin, por exemplo.
VocĂȘ deve sempre ter claro o que quer permitir acessar e entĂŁo verificar se outros cenĂĄrios sĂŁo possĂveis com as permissĂ”es concedidas.
Para mais informaçÔes, alĂ©m da docs, vocĂȘ pode encontrar cĂłdigo para implementar authorizers em this official aws github.
IAM Policy Injection
No mesmo talk Ă© mostrado que se o cĂłdigo estiver usando entrada do usuĂĄrio para gerar as polĂticas IAM, curingas (e outros como â.â ou strings especĂficas) podem ser incluĂdos ali com o objetivo de contornar restriçÔes.
Modelo de URL pĂșblica
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}
Obter o ID da conta a partir de uma URL pĂșblica do API Gateway
Assim como com S3 buckets, Data Exchange e Lambda URLs, Ă© possĂvel descobrir o ID da conta abusando da aws:ResourceAccount Policy Condition Key a partir de uma URL pĂșblica do API Gateway. Isto Ă© feito encontrando o ID da conta caractere por caractere, abusando de wildcards na seção aws:ResourceAccount da policy.
Esta tĂ©cnica tambĂ©m permite obter valores das tags se vocĂȘ souber a tag key (hĂĄ algumas padrĂŁo interessantes).
VocĂȘ pode encontrar mais informaçÔes na original research e na ferramenta conditional-love para automatizar essa exploração.
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
HackTricks Cloud

