Скидання/Забутий пароль обхід

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

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

  • Заголовок HTTP referer може витікати токен скидання пароля, якщо він включений в URL. Це може статися, коли користувач натискає на посилання третьої сторони після запиту на скидання пароля.
  • Вплив: Потенційне захоплення облікового запису через атаки Cross-Site Request Forgery (CSRF).
  • Експлуатація: Щоб перевірити, чи витікає токен скидання пароля в заголовку реферера, запросіть скидання пароля на вашу електронну адресу та натисніть на посилання для скидання, яке надано. Не змінюйте свій пароль відразу. Натомість, перейдіть на сайт третьої сторони (наприклад, Facebook або Twitter), перехоплюючи запити за допомогою Burp Suite. Перевірте запити, щоб дізнатися, чи заголовок реферера містить токен скидання пароля, оскільки це може розкрити чутливу інформацію третім особам.
  • Посилання:
  • HackerOne Report 342693
  • HackerOne Report 272379
  • Стаття про витік токена скидання пароля

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

  • Зловмисники можуть маніпулювати заголовком Host під час запитів на скидання пароля, щоб вказати посилання для скидання на шкідливий сайт.
  • Вплив: Призводить до потенційного захоплення облікового запису шляхом витоку токенів скидання зловмисникам.
  • Кроки пом'якшення:
  • Перевірте заголовок Host на відповідність білому списку дозволених доменів.
  • Використовуйте безпечні, серверні методи для генерації абсолютних URL.
  • Патч: Використовуйте $_SERVER['SERVER_NAME'] для створення URL скидання пароля замість $_SERVER['HTTP_HOST'].
  • Посилання:
  • Стаття Acunetix про отруєння скидання пароля

Скидання пароля шляхом маніпулювання параметром електронної пошти

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

  • Додайте електронну пошту зловмисника як другий параметр, використовуючи &
php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • Додайте електронну пошту атакуючого як другий параметр, використовуючи %20
php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • Додайте електронну пошту атакуючого як другий параметр, використовуючи |
php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • Додайте електронну пошту атакуючого як другий параметр, використовуючи cc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • Додайте електронну пошту атакуючого як другий параметр, використовуючи bcc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • Додайте електронну пошту атакуючого як другий параметр, використовуючи ,
php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • Додайте електронну пошту атакуючого як другий параметр у масиві json
php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

Зміна електронної пошти та пароля будь-якого користувача через параметри API

  • Зловмисники можуть змінювати параметри електронної пошти та пароля в запитах API для зміни облікових даних акаунта.
php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
  • Кроки пом'якшення:
  • Забезпечте сувору перевірку параметрів та аутентифікаційні перевірки.
  • Реалізуйте надійне ведення журналів та моніторинг для виявлення та реагування на підозрілі дії.
  • Посилання:
  • Full Account Takeover via API Parameter Manipulation

Відсутність обмеження швидкості: Email Bombing

  • Відсутність обмеження швидкості на запити скидання пароля може призвести до email bombing, перевантажуючи користувача листами для скидання.
  • Кроки пом'якшення:
  • Реалізуйте обмеження швидкості на основі IP-адреси або облікового запису користувача.
  • Використовуйте CAPTCHA для запобігання автоматизованому зловживанню.
  • Посилання:
  • HackerOne Report 280534

Визначте, як генерується токен для скидання пароля

  • Розуміння шаблону або методу генерації токенів може призвести до прогнозування або брутфорсингу токенів. Деякі варіанти:
  • На основі часу
  • На основі UserID
  • На основі електронної пошти користувача
  • На основі імені та прізвища
  • На основі дати народження
  • На основі криптографії
  • Кроки пом'якшення:
  • Використовуйте надійні, криптографічні методи для генерації токенів.
  • Забезпечте достатню випадковість і довжину, щоб запобігти прогнозуванню.
  • Інструменти: Використовуйте Burp Sequencer для аналізу випадковості токенів.

Легко вгадуваний UUID

  • Якщо UUID (версія 1) можна вгадати або передбачити, зловмисники можуть брутфорсити їх для генерації дійсних токенів скидання. Перевірте:

UUID Insecurities

  • Кроки пом'якшення:
  • Використовуйте GUID версії 4 для випадковості або реалізуйте додаткові заходи безпеки для інших версій.
  • Інструменти: Використовуйте guidtool для аналізу та генерації GUID.

Маніпуляція відповіддю: Замініть погану відповідь на хорошу

  • Маніпулювання HTTP-відповідями для обходу повідомлень про помилки або обмежень.
  • Кроки пом'якшення:
  • Реалізуйте перевірки на стороні сервера, щоб забезпечити цілісність відповіді.
  • Використовуйте безпечні канали зв'язку, такі як HTTPS, щоб запобігти атакам "людина посередині".
  • Посилання:
  • Critical Bug in Live Bug Bounty Event

Використання простроченого токена

  • Тестування, чи можна ще використовувати прострочені токени для скидання пароля.
  • Кроки пом'якшення:
  • Реалізуйте суворі політики закінчення терміну дії токенів та перевіряйте термін дії токенів на стороні сервера.

Брутфорс токена для скидання пароля

  • Спроба брутфорсити токен скидання, використовуючи інструменти, такі як Burpsuite та IP-Rotator, щоб обійти обмеження швидкості на основі IP.
  • Кроки пом'якшення:
  • Реалізуйте надійні механізми обмеження швидкості та блокування облікових записів.
  • Моніторте підозрілі дії, що вказують на атаки брутфорс.

Спробуйте використати свій токен

  • Тестування, чи можна використовувати токен скидання зловмисника разом з електронною поштою жертви.
  • Кроки пом'якшення:
  • Забезпечте, щоб токени були прив'язані до сеансу користувача або інших атрибутів, специфічних для користувача.

Недійсність сеансу при виході/скиданні пароля

  • Забезпечення недійсності сеансів, коли користувач виходить або скидає свій пароль.
  • Кроки пом'якшення:
  • Реалізуйте належне управління сеансами, забезпечуючи недійсність усіх сеансів при виході або скиданні пароля.

Недійсність сеансу при виході/скиданні пароля

  • Токени скидання повинні мати час закінчення, після якого вони стають недійсними.
  • Кроки пом'якшення:
  • Встановіть розумний час закінчення для токенів скидання та суворо дотримуйтеся його на стороні сервера.

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks