AWS - API Gateway Post Exploitation
API Gateway
更多信息请查看:
AWS - API Gateway Enum访问未公开的 APIs
你可以在 https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint 创建一个服务 com.amazonaws.us-east-1.execute-api
的端点,将端点暴露在你有访问权限的网络中(可能通过 EC2 机器),并分配一个允许所有连接的安全组。
然后,从 EC2 机器你将能够访问该端点,从而调用之前未公开的 gateway API。
绕过请求体直通
此技术在 这个 CTF writeup 中被发现。
如 AWS 文档 中 PassthroughBehavior
部分所示,默认情况下,值 WHEN_NO_MATCH
在检查请求的 Content-Type 头时,将请求传递到后端而不进行转换。
因此,在 CTF 中,当请求使用 Content-Type: application/json
发送时,API Gateway 有一个集成模板 防止标志在响应中被泄露:
然而,发送一个带有 Content-type: text/json
的请求可以绕过该过滤器。
最后,由于 API Gateway 只允许 Get
和 Options
,可以通过在请求体中发送查询并使用 X-HTTP-Method-Override: GET
头来发送任意 dynamoDB 查询而不受限制:
Usage Plans DoS
在Enumeration部分,你可以看到如何获取密钥的使用计划。如果你有密钥并且它每月限制使用X次,你可以直接使用它并导致DoS。
API Key只需要包含在一个名为**x-api-key
的HTTP header**中。
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
具有apigateway:UpdateGatewayResponse
和apigateway:CreateDeployment
权限的攻击者可以修改现有的Gateway Response以包含泄露敏感信息或执行恶意脚本的自定义header或响应模板。
潜在影响: 泄露敏感信息、执行恶意脚本或未经授权访问API资源。
需要测试
apigateway:UpdateStage
, apigateway:CreateDeployment
apigateway:UpdateStage
, apigateway:CreateDeployment
具有apigateway:UpdateStage
和apigateway:CreateDeployment
权限的攻击者可以修改现有的API Gateway阶段以将流量重定向到不同的阶段或更改缓存设置以获取未经授权的缓存数据访问。
潜在影响: 未经授权访问缓存数据,干扰或拦截API流量。
需要测试
apigateway:PutMethodResponse
, apigateway:CreateDeployment
apigateway:PutMethodResponse
, apigateway:CreateDeployment
具有 apigateway:PutMethodResponse
和 apigateway:CreateDeployment
权限的攻击者可以修改现有API Gateway REST API方法的方法响应,以包含泄露敏感信息或执行恶意脚本的自定义头或响应模板。
潜在影响:敏感信息泄露、执行恶意脚本或未经授权访问API资源。
需要测试
apigateway:UpdateRestApi
, apigateway:CreateDeployment
apigateway:UpdateRestApi
, apigateway:CreateDeployment
具有apigateway:UpdateRestApi
和apigateway:CreateDeployment
权限的攻击者可以修改API Gateway REST API设置以禁用日志记录或更改最低TLS版本,可能会削弱API的安全性。
潜在影响: 削弱API的安全性,可能允许未经授权的访问或暴露敏感信息。
需要测试
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
具有 apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, 和 apigateway:CreateUsagePlanKey
权限的攻击者可以创建新的API密钥,将其与使用计划关联,然后使用这些密钥进行未经授权的API访问。
潜在影响: 未经授权访问API资源,绕过安全控制。
需要测试
Last updated