AWS - API Gateway Post Exploitation
API Gateway
Więcej informacji znajdziesz tutaj:
AWS - API Gateway EnumDostęp do nieujawnionych API
Możesz utworzyć punkt końcowy w https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint z usługą com.amazonaws.us-east-1.execute-api
, udostępnić punkt końcowy w sieci, do której masz dostęp (potencjalnie za pośrednictwem maszyny EC2) i przypisać grupę zabezpieczeń, która pozwala na wszystkie połączenia.
Następnie, z maszyny EC2 będziesz mógł uzyskać dostęp do punktu końcowego, a tym samym wywołać API gateway, które wcześniej nie było ujawnione.
Obejście Passthrough Request body
Ta technika została znaleziona w tym opisie CTF.
Jak wskazano w dokumentacji AWS w sekcji PassthroughBehavior
, domyślnie wartość WHEN_NO_MATCH
, podczas sprawdzania nagłówka Content-Type żądania, przekaże żądanie do back endu bez transformacji.
Dlatego w CTF API Gateway miał szablon integracji, który zapobiegał wycieku flagi w odpowiedzi, gdy żądanie było wysyłane z Content-Type: application/json
:
Jednakże, wysłanie żądania z Content-type: text/json
zapobiegłoby temu filtrowi.
Wreszcie, ponieważ API Gateway pozwalało tylko na Get
i Options
, możliwe było wysłanie dowolnego zapytania dynamoDB bez żadnych ograniczeń, wysyłając żądanie POST z zapytaniem w treści i używając nagłówka X-HTTP-Method-Override: GET
:
Usage Plans DoS
W sekcji Enumeration możesz zobaczyć, jak uzyskać plan użycia kluczy. Jeśli masz klucz i jest on ograniczony do X użyć na miesiąc, możesz go po prostu użyć i spowodować DoS.
API Key musi być dołączony w nagłówku HTTP o nazwie x-api-key
.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:UpdateGatewayResponse
i apigateway:CreateDeployment
może zmodyfikować istniejącą odpowiedź Gateway, aby zawierała niestandardowe nagłówki lub szablony odpowiedzi, które wyciekają wrażliwe informacje lub wykonują złośliwe skrypty.
Potencjalny wpływ: Wycieki wrażliwych informacji, wykonywanie złośliwych skryptów lub nieautoryzowany dostęp do zasobów API.
Wymaga testowania
apigateway:UpdateStage
, apigateway:CreateDeployment
apigateway:UpdateStage
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:UpdateStage
i apigateway:CreateDeployment
może zmodyfikować istniejący etap API Gateway, aby przekierować ruch do innego etapu lub zmienić ustawienia buforowania, aby uzyskać nieautoryzowany dostęp do buforowanych danych.
Potencjalny wpływ: Nieautoryzowany dostęp do danych w pamięci podręcznej, zakłócanie lub przechwytywanie ruchu API.
Wymaga testowania
apigateway:PutMethodResponse
, apigateway:CreateDeployment
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:PutMethodResponse
i apigateway:CreateDeployment
może zmodyfikować odpowiedź metody istniejącej metody API Gateway REST API, aby zawierała niestandardowe nagłówki lub szablony odpowiedzi, które wyciekają poufne informacje lub wykonują złośliwe skrypty.
Potencjalny wpływ: Wycieki wrażliwych informacji, wykonywanie złośliwych skryptów lub nieautoryzowany dostęp do zasobów API.
Wymaga testowania
apigateway:UpdateRestApi
, apigateway:CreateDeployment
apigateway:UpdateRestApi
, apigateway:CreateDeployment
Atakujący z uprawnieniami apigateway:UpdateRestApi
i apigateway:CreateDeployment
może modyfikować ustawienia API Gateway REST API, aby wyłączyć logowanie lub zmienić minimalną wersję TLS, co potencjalnie osłabia bezpieczeństwo API.
Potencjalny wpływ: Osłabienie bezpieczeństwa API, potencjalnie umożliwiając nieautoryzowany dostęp lub ujawnienie wrażliwych informacji.
Wymaga testowania
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
Atakujący z uprawnieniami apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
i apigateway:CreateUsagePlanKey
może tworzyć nowe klucze API, przypisywać je do planów użytkowania, a następnie używać tych kluczy do nieautoryzowanego dostępu do API.
Potencjalny wpływ: Nieautoryzowany dostęp do zasobów API, omijanie kontroli bezpieczeństwa.
Wymaga testowania
Last updated