AWS - API Gateway Unauthenticated Enum

Support HackTricks

API Invoke bypass

Kulingana na mazungumzo Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, Lambda Authorizers inaweza kusanidiwa kwa kutumia sintaksia ya IAM kutoa ruhusa za kuita API endpoints. Hii imechukuliwa kutoka kwenye nyaraka:

{
"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"
]
}
]
}

Njia ya kutoa ruhusa za kuendesha endpoints ina tatizo kwamba "*" inamaanisha "chochote" na hakuna syntax ya regex inayoungwa mkono.

Baadhi ya mifano:

  • Sheria kama arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/* ili kumpa kila mtumiaji ufikiaji wa /dashboard/user/{username} itawapa ufikiaji wa njia nyingine kama /admin/dashboard/createAdmin kwa mfano.

Kumbuka kwamba "*" haikomi kupanuka na slashes, kwa hiyo, ukitumia "*" katika api-id kwa mfano, inaweza pia kumaanisha "hatua yoyote" au "njia yoyote" mradi regex ya mwisho bado ni sahihi. Kwa hiyo arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/* Inaweza kuthibitisha ombi la post kwa hatua ya test kwa njia /prod/GET/dashboard/admin kwa mfano.

Unapaswa kila wakati kuwa na wazi unachotaka kuruhusu kufikia na kisha kuangalia kama hali nyingine zinawezekana na ruhusa zilizotolewa.

Kwa maelezo zaidi, mbali na docs, unaweza kupata msimbo wa kutekeleza authorizers katika hii github rasmi ya aws.

IAM Policy Injection

Katika maongezi hayo hayo imeelezwa kwamba kama msimbo unatumia ingizo la mtumiaji kuunda sera za IAM, wildcards (na nyingine kama "." au misemo maalum) zinaweza kujumuishwa humo kwa lengo la kupita vizuizi.

Public URL template

https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

Kupata ID ya Akaunti kutoka kwa URL ya umma ya API Gateway

Kama ilivyo na S3 buckets, Data Exchange na Lambda URLs gateways, inawezekana kupata ID ya akaunti kwa kutumia aws:ResourceAccount Policy Condition Key kutoka kwa URL ya umma ya API Gateway. Hii inafanyika kwa kupata ID ya akaunti herufi moja kwa wakati kwa kutumia wildcards katika sehemu ya aws:ResourceAccount ya sera. Mbinu hii pia inaruhusu kupata maadili ya tags ikiwa unajua ufunguo wa tag (kuna baadhi ya zile za msingi zinazovutia).

Unaweza kupata maelezo zaidi katika tafiti asili na zana conditional-love ili kuendesha unyonyaji huu kiotomatiki.

Support HackTricks

Last updated