In this post we show a novel attack on OpenID Connect 1.0, which compromises cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire protocol - cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Malicious Endpoints attack. The idea behind cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack is to influence cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information flow in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Discovery and Dynamic Registration Phase in such a way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker gains access to sensitive information.
OpenID Connect aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication flow with Discovery and Dynamic Registration
![]() |
OpenID Connect 1.0 protocol flow with Discovery and Dynamic Registration |
- Initiate Single Sign-On:
An End-User visits cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client (https://honestClient.com) and starts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Single Sign-On aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication in order to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client and get access to his resources. For this purpose, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User enters his identity on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Honest OP (e.g. alice@honestop.com). - Discovery Endpoint (Discovery):
The Client normalizes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entered identity in order to estimate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correspondig OP. Afterwards cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client sends an HTTP request to this Discovery endpoint and subsequently retrieves cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OP's confguration information including its endpoint locations: - The (Dynamic) Registration Endpoint (regEndp).
- The Aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication Endpoint (authEndp.
- The Token Endpoint (tokenEndp).
- Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Registration Endpoint (regEndp):
In order to use OpenID Connect services for aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication, a Client has to register on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OP. For this registration, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client accesses this URL regEndp, for example, https://google.com/register. - Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Authorization Endpoint (authEndp):
In order to execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client's Aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication Request, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User has to be redirected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 authEndp of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OP, for example to https://login.google.com/. Here, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User has to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OP via a corresponding aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication process and authorize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client to access cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 requested resources. - Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Token Endpoint (tokenEndp):
The Client communicates with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tokenEndp, for example, https://google.com/consume-token, in order to obtain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 id_token described in Section 2.5 and aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User. In addition, an access_token can be sent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client in order to authorize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 access to restricted resources. This communication is done directly between Client and OP (without involving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User).
Malicious Endpoint Attack
![]() |
A view of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Malicious Endpoint attack and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol flow. |
If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 victim clicks on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 constructed link and thus visits cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client starts a discovery phase with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malicious Discovery service http://malicious.com. The Client sends a request to determine cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding endpoints. The attacker's Discovery service responds with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following values, initiating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual attack:
Phase 1.2 - Dynamic Registration In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next step, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client accesses regEndp for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dynamic Registration. It sends a registration request to https://honestOP.com/register and receives a client_id and client_secret in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 response.
The Client automatically starts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dynamic Registration, even if it is already registered on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 honest OpenID Provider. The reason for this behavior is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client believes that http://malicious.com is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responsible op, since it is not known from previous aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication procedures. Thus, http://malicious.com is a new OpenID Provider for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client and it starts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 registration procedure.
Phase 2 - End-User Aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ntication and Authorization In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next phase, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client redirects cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User to authEndp, https://login.honestOP.com/, where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User has to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate himself and authorize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client. The End-User is not able to detect any abnormalities in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol flow: Phase 1.1 and Phase 1.2 cannot be observed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User, and in Phase 2 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User will be prompted to aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticate to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 honest OpenID Provider and authorize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 honest Client, both of which he knows and trusts. Thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User authorizes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OpenID Provider generates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code, which is sent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client.
Note: Phase 2 exactly follows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original OpenID Connect protocol flow -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no parameter manipulation, no redirects to malicious websites and no observation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network traffic between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 honest OpenID Provider and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client. This means that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack cannot be detected by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OpenID Provider and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 End-User.
Phase 3 - The Theft In dependence of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol flow (Code or Implicit) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 messages sent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker differ.
Code Flow: Within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Code flow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client redeems cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 received code from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous phase: It sends cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding Client's credentials received during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dynamic Registration (client_id/client_secret) to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tokenEndp originally specified by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malicious Discovery service - in this example http://malicious.com.
Implicit Flow: Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Implicit flow does not use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tokenEndp, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker is not able to receive cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information send in phase 2. But during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Discovery Phase an ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r malicious endpoint can be used - userinfo_endpoint. This endpoint is an OAuth 2.0 Protected Resource that returns Claims about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticated user. According to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specification, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 obtained access token is sent as a Bearer token by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Client. Thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacker can get access to a valid access token.
Demo
http://ssoattacks.org/OIDC_MaliciousDiscoveryService/
Authors of this Post
Vladislav MladenovChristian Mainka (@CheariX)