AWS - API Gateway Post Exploitation
API Gateway
Aby uzyskać więcej informacji, sprawdź:
Dostę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
, ujawnić punkt końcowy w sieci, do której masz dostęp (potencjalnie za pośrednictwem maszyny EC2) i przypisać grupę zabezpieczeń zezwalającą 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 bramy, które wcześniej nie było ujawnione.
Ominięcie przekazywania ciała żądania
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 zaplecza bez transformacji.
W związku z tym w CTF brama API miała szablon integracji, który zapobiegał wyciekowi flagi w odpowiedzi, gdy wysłano żądanie z Content-Type: application/json
:
Jednak wysłanie żądania z Content-type: text/json
uniemożliwiłoby ten filtr.
Na koniec, ponieważ API Gateway pozwalał tylko na Get
i Options
, możliwe było wysłanie dowolnego zapytania do dynamoDB bez żadnych ograniczeń, wysyłając żądanie POST z zapytaniem w ciele i używając nagłówka X-HTTP-Method-Override: GET
:
Plany Użytkowania DoS
W sekcji Enumeracja możesz zobaczyć, jak uzyskać plan użytkowania kluczy. Jeśli masz klucz i jest on ograniczony do X użyć na miesiąc, możesz po prostu go użyć i spowodować DoS.
Klucz API 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ź bramy, aby dodać niestandardowe nagłówki lub szablony odpowiedzi, które ujawniają 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 pamięci podręcznej, aby uzyskać nieautoryzowany dostęp do danych w pamięci podręcznej.
Potencjalny wpływ: Nieautoryzowany dostęp do pamięci podręcznej danych, zakłócanie lub przechwytywanie ruchu API.
Wymaga testowania
apigateway:PutMethodResponse
, apigateway:CreateDeployment
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Napastnik z uprawnieniami apigateway:PutMethodResponse
i apigateway:CreateDeployment
może zmodyfikować odpowiedź metody istniejącej metody API Gateway REST API, aby dodać niestandardowe nagłówki lub szablony odpowiedzi, które ujawniają wrażliwe informacje lub wykonują złośliwe skrypty.
Potencjalny wpływ: Wyciek 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
Napastnik z uprawnieniami apigateway:UpdateRestApi
i apigateway:CreateDeployment
może zmodyfikować 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, co może prowadzić do nieautoryzowanego dostępu lub ujawnienia wrażliwych informacji.
Potrzebne testowanie
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 zabezpieczeń.
Wymaga testowania
Last updated