hacktricks/pentesting-web/account-takeover.md

12 KiB
Raw Blame History

Взлом облікового запису

{% hint style="success" %} Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримка HackTricks
{% endhint %}

Проблема авторизації

Електронну пошту облікового запису слід спробувати змінити, і процес підтвердження повинен бути перевірений. Якщо він виявиться слабким, електронну пошту слід змінити на адресу жертви та підтвердити.

Проблема нормалізації Unicode

  1. Обліковий запис жертви victim@gmail.com
  2. Слід створити обліковий запис, використовуючи Unicode
    наприклад: vićtim@gmail.com

Як пояснено в цьому виступі, попередню атаку також можна здійснити, зловживаючи сторонніми постачальниками ідентичності:

  • Створіть обліковий запис у сторонньому постачальнику ідентичності з подібною електронною поштою до жертви, використовуючи деякий символ unicode (vićtim@company.com).
  • Сторонній постачальник не повинен перевіряти електронну пошту.
  • Якщо постачальник ідентичності перевіряє електронну пошту, можливо, ви зможете атакувати доменну частину, наприклад: victim@ćompany.com і зареєструвати цей домен, сподіваючись, що постачальник ідентичності згенерує ASCII-версію домену, поки платформа жертви нормалізує ім'я домену.
  • Увійдіть через цього постачальника ідентичності на платформу жертви, яка повинна нормалізувати символ unicode і дозволити вам отримати доступ до облікового запису жертви.

Для отримання додаткових деталей зверніться до документа з нормалізації Unicode:

{% content-ref url="unicode-injection/unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

Повторне використання токена скидання

Якщо цільова система дозволяє повторне використання посилання на скидання, слід докласти зусиль для пошуку додаткових посилань на скидання за допомогою таких інструментів, як gau, wayback або scan.io.

Перед взломом облікового запису

  1. Електронну пошту жертви слід використовувати для реєстрації на платформі, і слід встановити пароль (слід спробувати підтвердити його, хоча відсутність доступу до електронних листів жертви може зробити це неможливим).
  2. Слід дочекатися, поки жертва зареєструється, використовуючи OAuth, і підтвердить обліковий запис.
  3. Сподіваємося, що звичайна реєстрація буде підтверджена, що дозволить отримати доступ до облікового запису жертви.

Неправильна конфігурація CORS для взлому облікового запису

Якщо сторінка містить неправильні конфігурації CORS, ви можете вкрасти чутливу інформацію у користувача, щоб взяти під контроль його обліковий запис або змусити його змінити інформацію для авторизації з тією ж метою:

{% content-ref url="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 {% endcontent-ref %}

XSS для взлому облікового запису

Якщо ви знайдете XSS в додатку, ви можете вкрасти куки, локальне сховище або інформацію зі сторінки, що може дозволити вам взяти під контроль обліковий запис:

{% content-ref url="xss-cross-site-scripting/" %} xss-cross-site-scripting {% endcontent-ref %}

Те ж саме походження + куки

Якщо ви знайдете обмежений XSS або захоплення піддомену, ви можете грати з куками (наприклад, фіксуючи їх), щоб спробувати скомпрометувати обліковий запис жертви:

{% content-ref url="hacking-with-cookies/" %} hacking-with-cookies {% endcontent-ref %}

Атака на механізм скидання пароля

{% content-ref url="reset-password.md" %} reset-password.md {% endcontent-ref %}

Маніпуляція відповіддю

Якщо відповідь аутентифікації можна звести до простого булевого значення, просто спробуйте змінити false на true і подивіться, чи отримаєте ви доступ.

OAuth для взлому облікового запису

{% content-ref url="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.

Зміна електронної пошти поточної сесії

З цього звіту:

  • Зловмисник запитує зміну своєї електронної пошти на нову.
  • Зловмисник отримує посилання для підтвердження зміни електронної пошти.
  • Зловмисник надсилає жертві посилання, щоб вона його клікнула.
  • Електронна пошта жертви змінюється на вказану зловмисником.
  • Зловмисник може відновити пароль і взяти під контроль обліковий запис.

Це також сталося в цьому звіті.

Старі куки

Як пояснено в цьому пості, було можливим увійти в обліковий запис, зберегти куки як аутентифікований користувач, вийти, а потім увійти знову.
При новому вході, хоча можуть бути згенеровані інші куки, старі знову почали працювати.

Посилання

{% hint style="success" %} Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримка HackTricks
{% endhint %}