hacktricks/pentesting-web/reset-password.md

229 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Скидання/Забутий пароль обхід
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
**Хакерські інсайти**\
Залучайтеся до контенту, який занурюється в захоплення та виклики хакерства
**Новини хакерства в реальному часі**\
Будьте в курсі швидкоплинного світу хакерства через новини та інсайти в реальному часі
**Останні оголошення**\
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
## **Витік токена скидання пароля через реферер**
* Заголовок HTTP referer може витікати токен скидання пароля, якщо він включений в URL. Це може статися, коли користувач натискає на посилання стороннього веб-сайту після запиту на скидання пароля.
* **Вплив**: Потенційне захоплення облікового запису через атаки Cross-Site Request Forgery (CSRF).
* **Експлуатація**: Щоб перевірити, чи витікає токен скидання пароля в заголовку referer, **запросіть скидання пароля** на вашу електронну адресу та **натисніть на посилання для скидання**, яке надано. **Не змінюйте свій пароль** відразу. Натомість, **перейдіть на сторонній веб-сайт** (наприклад, Facebook або Twitter), **перехоплюючи запити за допомогою Burp Suite**. Перевірте запити, щоб дізнатися, чи **заголовок referer містить токен скидання пароля**, оскільки це може розкрити чутливу інформацію третім особам.
* **Посилання**:
* [HackerOne Report 342693](https://hackerone.com/reports/342693)
* [HackerOne Report 272379](https://hackerone.com/reports/272379)
* [Стаття про витік токена скидання пароля](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Отруєння скидання пароля**
* Зловмисники можуть маніпулювати заголовком Host під час запитів на скидання пароля, щоб вказати посилання для скидання на шкідливий сайт.
* **Вплив**: Призводить до потенційного захоплення облікового запису шляхом витоку токенів скидання зловмисникам.
* **Кроки пом'якшення**:
* Перевірте заголовок Host на відповідність білому списку дозволених доменів.
* Використовуйте безпечні, серверні методи для генерації абсолютних URL.
* **Патч**: Використовуйте `$_SERVER['SERVER_NAME']` для створення URL скидання пароля замість `$_SERVER['HTTP_HOST']`.
* **Посилання**:
* [Стаття Acunetix про отруєння скидання пароля](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Скидання пароля шляхом маніпуляції параметром електронної пошти**
Зловмисники можуть маніпулювати запитом на скидання пароля, додаючи додаткові параметри електронної пошти, щоб відвести посилання для скидання.
* Додайте електронну пошту зловмисника як другий параметр, використовуючи &
```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"]}
```
* **Кроки пом'якшення**:
* Правильно аналізуйте та перевіряйте параметри електронної пошти на стороні сервера.
* Використовуйте підготовлені запити або параметризовані запити для запобігання атакам ін'єкцій.
* **Посилання**:
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
* [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
## **Зміна електронної пошти та пароля будь-якого користувача через параметри API**
* Зловмисники можуть змінювати параметри електронної пошти та пароля в запитах API, щоб змінити облікові дані акаунта.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Кроки пом'якшення**:
* Забезпечте сувору перевірку параметрів та аутентифікаційні перевірки.
* Реалізуйте надійне ведення журналу та моніторинг для виявлення та реагування на підозрілі дії.
* **Посилання**:
* [Повне захоплення облікового запису через маніпуляцію параметрами API](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Відсутність обмеження швидкості: Email бомбардування**
* Відсутність обмеження швидкості на запити скидання пароля може призвести до бомбардування електронною поштою, переповнюючи користувача електронними листами для скидання.
* **Кроки пом'якшення**:
* Реалізуйте обмеження швидкості на основі IP-адреси або облікового запису користувача.
* Використовуйте CAPTCHA для запобігання автоматизованому зловживанню.
* **Посилання**:
* [HackerOne Звіт 280534](https://hackerone.com/reports/280534)
## **Визначте, як генерується токен для скидання пароля**
* Розуміння шаблону або методу генерації токенів може призвести до прогнозування або брутфорсингу токенів. Деякі варіанти:
* На основі часу
* На основі UserID
* На основі електронної пошти користувача
* На основі імені та прізвища
* На основі дати народження
* На основі криптографії
* **Кроки пом'якшення**:
* Використовуйте надійні, криптографічні методи для генерації токенів.
* Забезпечте достатню випадковість і довжину, щоб запобігти передбачуваності.
* **Інструменти**: Використовуйте Burp Sequencer для аналізу випадковості токенів.
## **Вгадуваний UUID**
* Якщо UUID (версія 1) можна вгадати або передбачити, зловмисники можуть брутфорсити їх для генерації дійсних токенів скидання. Перевірте:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Кроки пом'якшення**:
* Використовуйте GUID версії 4 для випадковості або реалізуйте додаткові заходи безпеки для інших версій.
* **Інструменти**: Використовуйте [guidtool](https://github.com/intruder-io/guidtool) для аналізу та генерації GUID.
## **Маніпуляція відповіддю: Замініть погану відповідь на хорошу**
* Маніпулювання HTTP-відповідями для обходу повідомлень про помилки або обмежень.
* **Кроки пом'якшення**:
* Реалізуйте перевірки на стороні сервера, щоб забезпечити цілісність відповіді.
* Використовуйте безпечні канали зв'язку, такі як HTTPS, щоб запобігти атакам "людина посередині".
* **Посилання**:
* [Критична помилка в живому заході з винагородами за помилки](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Використання простроченого токена**
* Тестування, чи можна все ще використовувати прострочені токени для скидання пароля.
* **Кроки пом'якшення**:
* Реалізуйте суворі політики закінчення терміну дії токенів і перевіряйте термін дії токенів на стороні сервера.
## **Брутфорс токена для скидання пароля**
* Спроба брутфорсити токен скидання, використовуючи інструменти, такі як Burpsuite та IP-Rotator, щоб обійти обмеження швидкості на основі IP.
* **Кроки пом'якшення**:
* Реалізуйте надійні механізми обмеження швидкості та блокування облікових записів.
* Моніторинг підозрілих дій, що вказують на атаки брутфорс.
## **Спробуйте використати свій токен**
* Тестування, чи можна використовувати токен скидання зловмисника разом з електронною поштою жертви.
* **Кроки пом'якшення**:
* Забезпечте, щоб токени були прив'язані до сеансу користувача або інших атрибутів, специфічних для користувача.
## **Недійсність сеансу при виході/скиданні пароля**
* Забезпечення недійсності сеансів, коли користувач виходить або скидає свій пароль.
* **Кроки пом'якшення**:
* Реалізуйте належне управління сеансами, забезпечуючи недійсність усіх сеансів при виході або скиданні пароля.
## **Недійсність сеансу при виході/скиданні пароля**
* Токени скидання повинні мати час закінчення, після якого вони стають недійсними.
* **Кроки пом'якшення**:
* Встановіть розумний час закінчення для токенів скидання та суворо дотримуйтеся його на стороні сервера.
## Посилання
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та мисливцями за помилками!
**Інсайти з хакінгу**\
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
**Новини про хакінг у реальному часі**\
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
**Останні оголошення**\
Будьте в курсі нових винагород за помилки та важливих оновлень платформ
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
{% hint style="success" %}
Вчіться та практикуйте хакінг AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вчіться та практикуйте хакінг GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримка HackTricks</summary>
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}