> 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/ru/web/oauth-authentication/forced-oauth-profile-linking.md).

# Принудительное связывание профиля OAuth

### JПринудительная привязка профиля OAuth

**Описание лабораторной работы**

Этот лабораторный стенд предлагает функцию привязки профиля социальной сети к учетной записи пользователя для подключения через OAuth вместо использования традиционной аутентификации. / Из-за небезопасной реализации OAuth-потока на стороне клиента злоумышленник может перенаправить этот механизм, чтобы связать собственный профиль в социальной сети с учетной записью другого пользователя.

Цель:/ Выполните CSRF-атаку, чтобы привязать свой профиль в социальной сети к учетной записи администратора сайта, затем получите доступ к панели администратора и удалите пользователя **carlos**.

Ограничения :

* Администратор систематически открывает любой контент, отправленный с операционного сервера.
* У администратора всегда есть активная сессия на сайте блога.

**Доступные учетные записи**

* Учетная запись сайта: `wiener / peter`
* Профиль в социальной сети: `peter.wiener / hotdog`

<figure><img src="/files/8ff4cc56e6a7d51a2d83161d1f4abcf449800464" alt=""><figcaption></figcaption></figure>

**Анализ механизма OAuth**

* Сайт позволяет классическое подключение через логин и пароль.

<figure><img src="/files/f550e6f45b734b537e80aec197959a968c376930" alt=""><figcaption></figcaption></figure>

Также доступно подключение через OAuth (социальную сеть).

<figure><img src="/files/244d0bec5a0ca5c5b0e8f875c158091483f10ac6" alt=""><figcaption></figcaption></figure>

* Существующий пользователь может привязать профиль социальной сети к своей учетной записи.

Во время привязки к точке аутентификации отправляется запрос OAuth:

{% code overflow="wrap" %}

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

{% endcode %}

После аутентификации пользователь перенаправляется на URL, содержащий код OAuth:

```http
GET /oauth-linking?code=pYNeIWIFHaUh_fmTub7fAYLzcyNAEvDoKMh9iljTU1Q HTTP/2
```

Этот код:

* Одноразовый
* Используется для привязки профиля OAuth к текущей аутентифицированной учетной записи

<figure><img src="/files/664abfbc8be9a7f2a53139ff62d2ca9822c149a7" alt=""><figcaption></figcaption></figure>

**Эксплуатация уязвимости**

1. Начните процедуру привязки между своей учетной записью и профилем социальной сети.
2. Перехватите и скопируйте `/OAuth-linking?code=...` URL.

<figure><img src="/files/05f52f0d8765f538011453907918e9f68e82eda6" alt=""><figcaption></figcaption></figure>

Отклоните запрос, чтобы код не был использован.

С операционного сервера отправьте этот URL администратору через CSRF-атаку, например с использованием iframe

{% code overflow="wrap" %}

```javascript
<iframe src="https://0ac30047040d749984bf3b740088002a.web-security-academy.net/oauth-linking?code=pYNeIWIFHaUh_fmTub7fAYLzcyNAEvDoKMh9iljTU1Q"></iframe>
```

{% endcode %}

Администратор загружает страницу:

<figure><img src="/files/895deaf8b7c0cf7dd8ad4a22468fc1fddfd52b8e" alt=""><figcaption></figcaption></figure>

Код OAuth используется

<figure><img src="/files/8ae64bd873004131839c11a3fcda7895e86e7205" alt=""><figcaption></figcaption></figure>

Профиль OAuth злоумышленника привязан к учетной записи администратора

<figure><img src="/files/2a4bf683480dec116901a19d39e21db53e55ff76" 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/ru/web/oauth-authentication/forced-oauth-profile-linking.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
