# Взлом облікового запису {% 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 %}