# Взлом облікового запису
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримка HackTricks
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %}
## **Проблема авторизації**
Електронну пошту облікового запису слід спробувати змінити, і процес підтвердження **повинен бути перевірений**. Якщо він виявиться **слабким**, електронну пошту слід змінити на адресу жертви та підтвердити.
## **Проблема нормалізації Unicode**
1. Обліковий запис жертви `victim@gmail.com`
2. Слід створити обліковий запис, використовуючи Unicode\
наприклад: `vićtim@gmail.com`
Як пояснено в [**цьому виступі**](https://www.youtube.com/watch?v=CiIyaZ3x49c), попередню атаку також можна здійснити, зловживаючи сторонніми постачальниками ідентичності:
* Створіть обліковий запис у сторонньому постачальнику ідентичності з подібною електронною поштою до жертви, використовуючи деякий символ unicode (`vićtim@company.com`).
* Сторонній постачальник не повинен перевіряти електронну пошту.
* Якщо постачальник ідентичності перевіряє електронну пошту, можливо, ви зможете атакувати доменну частину, наприклад: `victim@ćompany.com` і зареєструвати цей домен, сподіваючись, що постачальник ідентичності згенерує ASCII-версію домену, поки платформа жертви нормалізує ім'я домену.
* Увійдіть через цього постачальника ідентичності на платформу жертви, яка повинна нормалізувати символ unicode і дозволити вам отримати доступ до облікового запису жертви.
Для отримання додаткових деталей зверніться до документа з нормалізації Unicode:
{% content-ref url="unicode-injection/unicode-normalization.md" %}
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
{% endcontent-ref %}
## **Повторне використання токена скидання**
Якщо цільова система дозволяє **повторне використання посилання на скидання**, слід докласти зусиль для **пошуку додаткових посилань на скидання** за допомогою таких інструментів, як `gau`, `wayback` або `scan.io`.
## **Перед взломом облікового запису**
1. Електронну пошту жертви слід використовувати для реєстрації на платформі, і слід встановити пароль (слід спробувати підтвердити його, хоча відсутність доступу до електронних листів жертви може зробити це неможливим).
2. Слід дочекатися, поки жертва зареєструється, використовуючи OAuth, і підтвердить обліковий запис.
3. Сподіваємося, що звичайна реєстрація буде підтверджена, що дозволить отримати доступ до облікового запису жертви.
## **Неправильна конфігурація CORS для взлому облікового запису**
Якщо сторінка містить **неправильні конфігурації CORS**, ви можете **вкрасти чутливу інформацію** у користувача, щоб **взяти під контроль його обліковий запис** або змусити його змінити інформацію для авторизації з тією ж метою:
{% content-ref url="cors-bypass.md" %}
[cors-bypass.md](cors-bypass.md)
{% endcontent-ref %}
## **CSRF для взлому облікового запису**
Якщо сторінка вразлива до CSRF, ви можете змусити **користувача змінити свій пароль**, електронну пошту або аутентифікацію, щоб потім отримати до них доступ:
{% content-ref url="csrf-cross-site-request-forgery.md" %}
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **XSS для взлому облікового запису**
Якщо ви знайдете XSS в додатку, ви можете вкрасти куки, локальне сховище або інформацію зі сторінки, що може дозволити вам взяти під контроль обліковий запис:
{% content-ref url="xss-cross-site-scripting/" %}
[xss-cross-site-scripting](xss-cross-site-scripting/)
{% endcontent-ref %}
## **Те ж саме походження + куки**
Якщо ви знайдете обмежений XSS або захоплення піддомену, ви можете грати з куками (наприклад, фіксуючи їх), щоб спробувати скомпрометувати обліковий запис жертви:
{% content-ref url="hacking-with-cookies/" %}
[hacking-with-cookies](hacking-with-cookies/)
{% endcontent-ref %}
## **Атака на механізм скидання пароля**
{% content-ref url="reset-password.md" %}
[reset-password.md](reset-password.md)
{% endcontent-ref %}
## **Маніпуляція відповіддю**
Якщо відповідь аутентифікації можна **звести до простого булевого значення, просто спробуйте змінити false на true** і подивіться, чи отримаєте ви доступ.
## OAuth для взлому облікового запису
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
## Впровадження заголовка Host
1. Заголовок Host змінюється після ініціації запиту на скидання пароля.
2. Заголовок проксі `X-Forwarded-For` змінюється на `attacker.com`.
3. Заголовки Host, Referrer і Origin одночасно змінюються на `attacker.com`.
4. Після ініціації скидання пароля та вибору повторної відправки електронної пошти використовуються всі три вищезгадані методи.
## Маніпуляція відповіддю
1. **Маніпуляція кодом**: Статус-код змінюється на `200 OK`.
2. **Маніпуляція кодом і тілом**:
* Статус-код змінюється на `200 OK`.
* Тіло відповіді змінюється на `{"success":true}` або на порожній об'єкт `{}`.
Ці техніки маніпуляції ефективні в сценаріях, де для передачі та отримання даних використовується JSON.
## Зміна електронної пошти поточної сесії
З [цього звіту](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
* Зловмисник запитує зміну своєї електронної пошти на нову.
* Зловмисник отримує посилання для підтвердження зміни електронної пошти.
* Зловмисник надсилає жертві посилання, щоб вона його клікнула.
* Електронна пошта жертви змінюється на вказану зловмисником.
* Зловмисник може відновити пароль і взяти під контроль обліковий запис.
Це також сталося в [**цьому звіті**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea).
### Старі куки
Як пояснено [**в цьому пості**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9), було можливим увійти в обліковий запис, зберегти куки як аутентифікований користувач, вийти, а потім увійти знову.\
При новому вході, хоча можуть бути згенеровані інші куки, старі знову почали працювати.
## Посилання
* [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
* [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримка HackTricks
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %}