AWS - API Gateway Unauthenticated Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Volgens die praatjie Aanval Vektore vir API's wat AWS API Gateway Lambda Authorizers Gebruik - Alexandre & Leonardo, kan Lambda Authorizers geconfigureer word met IAM-sintaksis om toestemmings te gee om API-eindpunte aan te roep. Dit is geneem uit die dokumentasie:
Die probleem met hierdie manier om toestemmings te gee om eindpunte aan te roep, is dat die "*" impliseer "enigiets" en daar is geen verdere regex-sintaksis ondersteun nie.
Sommige voorbeelde:
'n Reël soos arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*
om elke gebruiker toegang te gee tot /dashboard/user/{username}
sal hulle toegang gee tot ander roetes soos /admin/dashboard/createAdmin
byvoorbeeld.
Let daarop dat "*" nie stop om uit te brei met skewe strepies nie, daarom, as jy "*" in api-id gebruik byvoorbeeld, kan dit ook "enige fase" of "enige metode" aandui solank die finale regex steeds geldig is.
So arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Kan 'n posversoek valideer om die toetsfase na die pad /prod/GET/dashboard/admin
byvoorbeeld.
Jy moet altyd duidelik hê wat jy wil toelaat om toegang te verkry en dan nagaan of ander scenario's moontlik is met die toestemmings wat gegee is.
Vir meer inligting, behalwe die docs, kan jy kode vind om outeurs te implementeer in hierdie amptelike aws github.
In dieselfde praatjie word die feit blootgestel dat as die kode gebruikersinvoer gebruik om die IAM-beleide te genereer, wildcard (en ander soos "." of spesifieke strings) daarin ingesluit kan word met die doel om beperkings te omseil.
Net soos met S3-buckets, Data Exchange en Lambda URL-gateways, is dit moontlik om die rekening ID van 'n rekening te vind deur die aws:ResourceAccount
Beleidstoestand Sleutel van 'n openbare API Gateway URL te misbruik. Dit word gedoen deur die rekening ID een karakter op 'n slag te vind deur gebruik te maak van wildcard in die aws:ResourceAccount
afdeling van die beleid.
Hierdie tegniek laat ook toe om waardes van etikette te verkry as jy die etiket sleutel ken (daar is 'n paar standaard interessante).
Jy kan meer inligting vind in die oorspronklike navorsing en die hulpmiddel conditional-love om hierdie uitbuiting te outomatiseer.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)